我想用(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
但我没有得到任何东西。
答案 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如何逃避事情,我永远不会记得它。)