Назад | Перейти на главную страницу

найти и заменить текст последовательностью чисел

Мне нужно заменить слово в таком файле

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

мне нужно заменить компьютер на pc1, pc2 .... и т. д.

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

Как я могу сделать это в одну строку?

Это моя версия на awk

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

он увеличивает счетчик только в том случае, если $ 3 равно pc.

С Perl:

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

С awk:

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

Если вы знаете, что слово есть в каждой строке и всегда в 3-м столбце:

awk '{ $3 = $3 NR; print }'