【问题标题】:UNIX Bash - Removing double quotes from specific strings within a fileUNIX Bash - 从文件中的特定字符串中删除双引号
【发布时间】:2020-06-11 22:32:22
【问题描述】:

抱歉,因为我之前没有在这里发布过,所以我的格式非常糟糕。

我正在尝试编辑一个文件以删除围绕多个不同长度字符串的双引号。其中一些字符串包括大写和空格,通常我只会使用全局搜索和替换,但是,有些字符串不能根据需要删除双引号。

相关文件的摘录在这里:

"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",

【问题讨论】:

  • 请将该示例输入的所需输出(无描述)添加到您的问题(无评论)。

标签: bash unix awk sed


【解决方案1】:

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

sed 's/\."\([^"]*\)"/.\1/g' file

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 2013-10-09
    • 2012-09-26
    • 1970-01-01
    相关资源
    最近更新 更多