UNIX Bash - 从文件中的特定字符串中删除双引号

wal*_*rja 3 unix bash 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",
Run Code Online (Sandbox Code Playgroud)

之后的包裹字符串。是需要删除双引号的字符串。前任:

."NAME"
Run Code Online (Sandbox Code Playgroud)

我试图使用 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",
Run Code Online (Sandbox Code Playgroud)

pot*_*ong 5

这可能对你有用(GNU sed):

sed 's/\."\([^"]*\)"/.\1/g' file
Run Code Online (Sandbox Code Playgroud)

匹配一个句点,后跟一个双引号字符串,并替换为一个句点和减去双引号的字符串。

注意句号需要引用/转义,否则它匹配任何字符。