bash - 如何用 BASH 中的递增数字替换所有匹配项?

标签 bash sed

我有一个这样的文本文件:

AAAAAA this is some content.
This is AAAAAA some more content AAAAAA. AAAAAA
This is yet AAAAAA some more [AAAAAA] content.

我需要用递增的数字替换所有出现的 AAAAAA,例如,输出如下所示:

1 this is some content.
This is 2 some more content 3. 4
This is yet 5 some more [6] content.

如何用递增的数字替换所有匹配项?

最佳答案

这里有一种方法:

$ awk '{for(x=1;x<=NF;x++)if($x~/AAAAAA/){sub(/AAAAAA/,++i)}}1' file
1 this is some content.
This is 2 some more content 3. 4
This is yet 5 some more [6] content.

关于bash - 如何用 BASH 中的递增数字替换所有匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23577516/

相关文章:

linux - 从 bash 脚本中的行号开始读取行

bash - 如何更改文件中的字符串,但将更改保存在另一个文件中,而不是原始文件中?

bash - 查找 - grep 花费太多时间

regex - 在 GNU Linux (AWK/SED/GREP) 中选择与模式文件中的任何模式不匹配的 CSV 行

bash - 使用 find 获取所有没有 .git 子文件夹的文件夹

bash - 如何在 bash 脚本中创建 for 循环?

Bash 引用问题

shell - 修改两个模式之间的每一行字符

linux - grep -isn "String\.format"-R 之间有什么区别。和 grep -isn String\.format -R .?

linux - Linux bash 中波浪号的含义(不是主目录)