regex - sed 用“”替换特殊字符
问题描述
我尝试解析这样的输出terraform output
:
terraform output -json all_admins |
sed -e "s/,/;\n/g" -e "s/^(\[|\])//g"
terraform output -json all_admins
导致:
["admin1@admin.com","admin2@admin.com"]
当前结果:
terraform output -json all_admins |
sed -e "s/,/;\n/g" -e "s/^(\[|\])//g"
导致:
["admin1@admin.com";
"admin2@admin.com"]
预期结果:
"admin1@admin.com";
"admin2@admin.com"
我怎样才能优雅地摆脱[
并]
在 sed 中使用正则表达式?
解决方案
您可以使用:
terraform output -json all_admins | sed 's/[][]//g; s/,/;\
/g'
# Example:
s='["admin1@admin.com","admin2@admin.com"]'
echo "$s" | sed 's/[][]//g; s/,/;\
/g'
"admin1@admin.com";
"admin2@admin.com"
确保未转义]
位于括号位置内的第一个位置[...]
,然后[
是下一个。
请注意,这sed 's/[][]//g' file
相当于sed -E 's/\]|\[//g' file
推荐阅读
- sql - 学习 SQL:使用声明的 INT 从单独的表中返回特定值,然后在 where 函数中使用
- azure-pipelines - 无法覆盖 Azure 管道运行变量
- javascript - 如何使位置粘在屏幕上
- import - Sqoop 导入所有表不适用于特定架构,同时将所有表从 SQL 服务器导入 Hive
- android - 等待另一种方法,直到协程完成 [Android Kotlin]
- angular - 角材料复选框过滤器不过滤垫表。终端和控制台中没有错误
- python - 为什么pySmartDL(Python下载管理器)成功后不断重试?
- javascript - 三个带webpack的js
- html - 加载大数据时Kendo Telerik 报告非常慢(性能差),并出现0 页加载到目前为止的消息
- swift - 如何使用 SwiftUI App Cycle 在 SwiftUI 项目中实现 AdMob Open Ad?