【问题标题】:Replacing caret characters with sed用 sed 替换插入符号
【发布时间】:2013-03-19 04:45:32
【问题描述】:

我在一个文件中有如下所示的行:

FA General,1234567^^^^^FA Student Letter- General^<<undefined>>^\\path\to\file.RTF

我正在尝试使用 sed 将插入符号替换为逗号。如果我使用:

sed 's/\^/,/' file.txt

没有任何变化。我也试过了

sed 's/\\^/,/' file.txt
sed 's/^^/,/' file.txt

我在这里错过了什么?

【问题讨论】:

    标签: regex sed caret


    【解决方案1】:

    要替换所有插入符号吗?我敢肯定,如果您仔细查看结果,您会发现第一个插入符号已被替换。所以试试这个:

    sed -e 's/\^/,/g' file.txt
    

    注意g 表示全局替换,即所有匹配项。

    【讨论】:

    • 你是对的。我不敢相信我错过了。非常感谢!
    【解决方案2】:

    我无法复制这个问题

    set 'hello^world'
    echo $1
    sed 's/\^/,/' <<< "$1"
    

    输出

    hello^world
    hello,world
    

    【讨论】:

      【解决方案3】:

      或者试试y 命令:

      sed 'y/^/,/'
      

      【讨论】:

        猜你喜欢
        • 2018-01-15
        • 2021-11-19
        • 1970-01-01
        • 2020-05-29
        • 2014-04-17
        • 1970-01-01
        • 2023-03-26
        • 2023-02-06
        相关资源
        最近更新 更多