2014-01-18 4 views

ответ

3

Один из способов с awk:

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

+1. Вы можете просто использовать NR вместо ++ i, если хотите. –

+0

@ EdMorton недостаточно информации, предполагаемое вхождение не обязательно происходит один раз в строке. –

+0

sub() вполне достаточно. – BMW

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

Использование оболочки.

#! /usr/bin/bash 

i=0 
while read a b c 
do 
    ((i++)) 
    echo "bar baz$i $c" 
done < file 
Смежные вопросы