2014-01-18 33 views

回答

3

方式一:

$ awk '{gsub(/foo bar/,"bar baz"++i)}1' file 
bar baz1 a 
bar baz2 b 
bar baz3 c 
+0

+1。如果你喜欢,你可以用NR代替++。 –

+0

@EdMorton没有足够的信息,假设每行不一定发生一次。 –

+0

sub()已经足够了。 – BMW

2
perl -lape '@F[0,1] = ($F[1], "baz". ++$i); $_= "@F"' file 
0

使用shell。

#! /usr/bin/bash 

i=0 
while read a b c 
do 
    ((i++)) 
    echo "bar baz$i $c" 
done < file