sed创建重复行而不是替换现有行

时间:2014-05-19 09:24:45

标签: bash text replace sed

我有一个包含以下内容的文件(foo.txt):

some-text 0

我使用以下sed命令将0替换为1:

search_text="some-text";
sed "s/${search_text} 0/${search_text} 1/" -i foo.txt;

这导致foo.txt包含:

some-text 0
some-text 1

如何让它替换找到的行而不是追加新行?

在SL06上使用GNU sed版本4.2.1。

2 个答案:

答案 0 :(得分:0)

如果您想尝试awk

awk '/some-text/ {$2=1} 1' file

答案 1 :(得分:0)

你试试吗

search_text='some-text'
sed -e "s/\(${search_text}\) 0/\1 1/" -i foo.txt

使用group pattern而不是search_text的两倍

您正在使用哪个shell(因为我看到;类似于c行尾不常用于shell中的几行?