如果我之前没有在这里发布过,所以我把它格式化得很糟糕,我深表歉意。
我正在尝试编辑文件以删除围绕多个不同长度的字符串的双引号。其中一些字符串包括大写和空格,通常我只会使用全局搜索和替换,但是,有些字符串不能根据需要删除双引号。
这里是相关文件的摘录:
"tplan"."external_plan_ref" "Plan ID",
'CMP' CMP,
"bd"."NAME" "Business Divison",
"reg"."NAME" "Region",
placeholder1 "Placeholder 1",
"ct"."COUNTRY_NAME" "COUNTRY",
city "City",
placeholder2 "Placeholder 2",
placeholder3 "Placeholder 3",
placeholder4 "Placeholder 4",
. 之后的包裹字符串。是需要删除双引号的字符串。例如:
."NAME"
我曾尝试使用带有正则表达式的 awk 和 sed 来确定需要替换的内容,然后将其替换,但我没有运气,并且一直在努力解决这个问题。任何意见或建议将不胜感激。谢谢!
示例输出:
"tplan".external_plan_ref "Plan ID",
'CMP' CMP,
"bd".NAME "Business Divison",
"reg".NAME "Region",
placeholder1 "Placeholder 1",
"ct".COUNTRY_NAME "COUNTRY",
city "City",
placeholder2 "Placeholder 2",
placeholder3 "Placeholder 3",
placeholder4 "Placeholder 4",
最佳答案
这可能对你有用(GNU sed):
sed 's/\."\([^"]*\)"/.\1/g' file
匹配句点,后跟双引号字符串并替换为句点和减去双引号的字符串。
注意句点需要被引用/转义,否则它匹配任何字符。
关于bash - UNIX Bash - 从文件中的特定字符串中删除双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62266260/