如何使用sed搜索^ A并替换它

时间:2014-05-27 06:31:31

标签: sed

我想用(GNU)sed做一个简单的搜索和替换。问题是我正在寻找一个特殊角色,这可能是我失败的原因。

输入是:

^A9=139^A35=V^A34=9^A49=xxxx^A52=20140527-06:18:43.759^A5

我希望将^A替换为;。我用过:

sed -i '/s/^A/;/g' file.log

但我没有得到任何东西。

2 个答案:

答案 0 :(得分:7)

你的命令应该是,

sed -i 's/\^A/;/g' file

你试过的命令,

sed -i '/s/^A/;/g' file.log
        |  |
        |  |______________You have to escape this special character. Because in general(regex) it means the starting point.
[No need to use `/` before s]

示例:

$ sed 's/\^A/;/g' file
;9=139;35=V;34=9;49=xxxx;52=20140527-06:18:43.759;5

答案 1 :(得分:1)

^具有正则表达式的特殊含义。使用\ ^(或者可能是\\ ^,取决于bash如何逃避事情,我永远不会记得它。)