regex - 如何找到一个模式,并以不同的方式替换它?

标签 regex linux

我在删除文件中的重复行并将其替换为非重复行时遇到问题。理想情况下,我只想将其替换为连续序列,以便可以分隔重复的行。

我正在考虑使用某种通配符 (*) 的 sed:

sed -e "s/text_pattern/text_pattern*/g" my_file.txt

这样每次返回时都会向 text_pattern 添加一个新数字。但是,我无法在手册页和互联网上找到合适的解决方案。有人知道如何做这样的事情吗?也许 sed 不是最好的选择?

谢谢!

最佳答案

Awk 似乎更适合这项任务。我假设您并不真正需要正则表达式,但想要将完整的行与固定字符串匹配。然后你可以这样做:

awk -v ln="text_pattern" '$0 == ln { $0 = $0 " " ++i };1' my_file.txt

关于regex - 如何找到一个模式,并以不同的方式替换它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4031700/

相关文章:

linux - 如何找到正在运行的 Docker 容器的所有镜像标签?

linux - 如何退出没有任何错误运行的 watch ?

正则表达式仅显示小时或小时和分钟

java - 如何在 Ubuntu Linux 中安装 Amazon Corretto?

javascript - 使用正则表达式仅搜索单词开头的关键字

Python 正则表达式匹配行如果以什么结尾?

python - 如果我使用 ius 社区项目的 rpms,yum 会崩溃吗?

c - 注意到 linux 中的一个进程没有显示在进程列表中,这是怎么发生的?

python - [Python] : Python re. 长字符串行的搜索速度优化

regex - 在 Ocaml 中匹配 z1 或 z2 的正则表达式