linux - 使用 sed 有条件地匹配一个词

标签 linux bash sed

我想替换所有包含 abc 的单词,但在 abc 之前不包含 KLM

例如,"dasdasKLMabc" 不应该更改,但是 "dasabc" 可以替换,我想将 abc 替换为rrr.

最佳答案

sed 似乎不支持后视。但是你可以在 perl 中很容易地做到这一点:

sorin@sorin:~$ echo -e "llalaabc\nKLMabc" | perl -pe 's/(?<!KLM)abc/rrr/'
llalarrr
KLMabc
sorin@sorin:~$

关于linux - 使用 sed 有条件地匹配一个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15408347/

相关文章:

bash - 正确对齐列的 Shell 脚本

mysql - 在 Kubernetes 作业中通过管道将文件传输到标准输入

java - 在停止并重新启动我的应用程序时,我收到 JMX 地址已在使用中的错误

node.js - 未找到 PM2 命令

linux - 通过从 Linux shell 脚本调用 Servlet 来获取响应

linux - tar.gz 是在将文件放入 tar 之前还是之后对文件进行 gzip 压缩?

csv - 从一个列表中减去另一个列表的最有效方法是什么?

linux - 循环内的 SED 命令

regex - awk/sed 在两个模式之间插入行

linux - 如何从包含带连字符的短语集的文件中搜索确切的短语