sed 替换

sed 替换

我有一个字符串如下:

/test/test/ 12 /test/test

我的目标是把它变成:

/test/est/ 12 /test/test

这是命令:

echo "$x" | sed 's@\(/*/\).@\1@g'"

我现在正在使用,但它在任何地方应用它,而不是在“/”的第二个实例上

答案1

正如 Steeldriver 所说,如果您使用 GNU sed,您可以知道应该替换哪个出现,例如:

echo "/test/test/ 12 /test/test" | sed -n -e  's_/._/_2 p' 

如果你不能使用这个功能你也可以这样写:

echo "/test/test/ 12 /test/test" | sed -n -r -e  's_(/[a-z]([a-z]+))\1_\1/\2_ p'

参考书目:http://www.grymoire.com/Unix/Sed.html[使用 \1 保留模式的一部分]

答案2

echo "/test/test/ 12 /test/test" | sed 's/\/test\/t/\/test\//'

答案3

好,易于...

sed -n "s/test/est/2p"
  • -n 不打印任何内容
  • s/替代品
  • “测试”与“est”
  • /2 但仅是第二个实例
  • p 打印结果

相关内容