我有一个字符串如下:
/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 打印结果