我想用文本中的每一个字符串替换,但以新文本编号的方式替换。例如:替换文件中的文本并将编号添加到新字符串
来自:
foo bar a
foo bar b
foo bar c
到:
bar baz1 a
bar baz2 b
bar baz3 c
如何做到这一点的命令行?与awk
我想用文本中的每一个字符串替换,但以新文本编号的方式替换。例如:替换文件中的文本并将编号添加到新字符串
来自:
foo bar a
foo bar b
foo bar c
到:
bar baz1 a
bar baz2 b
bar baz3 c
如何做到这一点的命令行?与awk
方式一:
$ awk '{gsub(/foo bar/,"bar baz"++i)}1' file
bar baz1 a
bar baz2 b
bar baz3 c
perl -lape '@F[0,1] = ($F[1], "baz". ++$i); $_= "@F"' file
使用shell。
#! /usr/bin/bash
i=0
while read a b c
do
((i++))
echo "bar baz$i $c"
done < file
+1。如果你喜欢,你可以用NR代替++。 –
@EdMorton没有足够的信息,假设每行不一定发生一次。 –
sub()已经足够了。 – BMW