![查找并用数字序列替换文本](https://linux22.com/image/563838/%E6%9F%A5%E6%89%BE%E5%B9%B6%E7%94%A8%E6%95%B0%E5%AD%97%E5%BA%8F%E5%88%97%E6%9B%BF%E6%8D%A2%E6%96%87%E6%9C%AC.png)
我需要替换文件中的单词,如下所示
text text pc text text
text text pc text text
text text pc text text
我需要用 pc1、pc2 .... 等替换 pc
text text pc1 text text
text text pc2 text text
text text pc3 text text
我怎样才能在一行中完成这个任务?
答案1
使用 Perl:
perl -pe 's/\bpc\b/$& . ++$count/ge'
使用 awk:
awk -v word=pc '{gsub("\<" word "\>", word (++count)); print}'
如果您知道该单词在每一行上并且始终位于第三列:
awk '{ $3 = $3 NR; print }'
答案2
这是我在 awk 中的版本
awk 'BEGIN {count=1}; {if ($3 ~ /pc/) {sub(/pc/,"pc"(count++));print} else {print} }' inputfile
仅当 $3 是 pc 时,它才会增加计数器。