regex - 如何使用sed替换字符串的一部分

标签 regex sed

echo "/home/repository/tags/1.9.1/1.9.1.8/core" | sed "s/HELP/XXX/g"

我需要一些帮助来替换标签和核心之间的内容,比如说 XXX。所以我想要的输出是/home/repository/tags/XXX/core。

字符串是目录路径,其中/home/repository/tags 是唯一不变的部分。路径总是有六层深。所以它可能并不总是在标签和核心之间。

最佳答案

echo "/home/repository/whatever/1.9.1/1.9.1.8/core/and/more/junk"   \
| sed 's@\(/[^/]*/[^/]*/[^/]*\)/[^/]*/[^/]*@\1/XXX@'

产量...

/home/repository/whatever/XXX/core/and/more/junk

关于regex - 如何使用sed替换字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4207575/

相关文章:

r - 如何在 R 中编写生成 Pig Latin 的函数

linux - 不使用 SED 反向引用删除重复字符

regex - 使用正则表达式的 Sed 替换输出

shell - sed命令替换空格和:之间的数字

Java 正则表达式替换字符串中的负字节

php - 使用动态 URL 的 Htaccess 301 重定向

javascript - 使用正则表达式替换函数调用

linux - sed - 删除两个空行之前的文本

c# - 如何匹配不在括号中的所有内容?

php - preg_replace UTF-8 不起作用