Shell脚本:如果找到部分匹配,则覆盖文本文件中的整行

时间:2013-08-30 22:01:22

标签: shell sed awk

类似的问题已被问到here,但我想略有不同。我的问题是,如果我的文件foobar.txt看起来像这样:

ABCdefg
hijklmn

如何在文件的每一行搜索ABC,如果找到“ABC”,则需要将整行替换为AAAAAAA。所以文件的最终输出是:

AAAAAAA
hijklmn

2 个答案:

答案 0 :(得分:4)

尝试这个sed行:

sed '/ABC/s/.*/AAAAAAA/' file

示例:

kent$  echo "ABCdefg
hijklmn
xxABC"|sed '/ABC/s/.*/AAAAAAA/'
AAAAAAA
hijklmn
AAAAAAA

或awk one-liner:

awk '/ABC/{$0="AAAAAAA"}7' file

测试省略。

答案 1 :(得分:0)

这可能适合你(GNU sed):

sed -i '/ABC/s/./A/g' file