我需要找到一个字符串并用移动索引替换它(在这种情况下,查找模式是“replaceThis”)
例如:
id=replaceThis
......
id=replaceThis
......
id=replaceThis
应该成为
id=0
......
id=1
......
id=2
我的环境是 Windows(和 Notepad++),但我也可以访问 Cygwin
答案1
awk
在 Cygwin 中这相当容易:
awk '{ while ($0 ~ /replaceThis/) sub(/replaceThis/, counter++) } 1'
在每一行中,只要它包含您要查找的字符串,就用计数器的值替换(一次出现),然后递增。末尾的1
是告诉awk
在替换所有出现的字符串(如果有)后打印该行的简写方式;您也可以这样说
awk '{ while ($0 ~ /replaceThis/) sub(/replaceThis/, counter++); print }'