localize e substitua o texto pela sequência de números [closed]

2

Eu preciso substituir uma palavra em um arquivo como este

text text pc text text
text text pc text text
text text pc text text

eu preciso substituir pc com pc1, pc2 .... etc

text text pc1 text text
text text pc2 text text
text text pc3 text text

Como posso fazer isso em uma linha?

    
por cosmin 07.10.2011 / 19:35

2 respostas

3

com o Perl:

perl -pe 's/\bpc\b/$& . ++$count/ge'

com o awk:

awk -v word=pc '{gsub("\<" word "\>", word (++count)); print}'

Se você sabe que a palavra está em todas as linhas e está sempre na terceira coluna:

awk '{ $3 = $3 NR; print }'
    
por 07.10.2011 / 19:55
3

Esta é minha versão no awk

awk 'BEGIN {count=1}; {if ($3 ~ /pc/) {sub(/pc/,"pc"(count++));print} else {print} }' inputfile

só incrementa o contador se o $ 3 for pc.

    
por 07.10.2011 / 20:13