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 }'
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?
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 }'
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.