救命!你如何将“[one] abc [two]”变成“X abc X”?

时间:2011-03-25 08:20:24

标签: regex sed

我失败的尝试:

s/\[[^\[\]]*\]/X/

ed或sed中没有匹配。

谢谢!

3 个答案:

答案 0 :(得分:4)

如果你的意思是文字字符串[one] abc [two]使用例如这样:

s/[[][^]]*]/X/g

它会用X替换[ + anything not ] + ]

答案 1 :(得分:0)

字面上的[方括号]?或者空白是重要的部分?

sed -r 's/(.*) (.*) (.*)/X \2 X/'

echo "[one] abc [two]" | sed -r 's/(.*) (.*) (.*)/X \2 X/'
X abc X

答案 2 :(得分:0)

红宝石(1.9 +)

$ echo "[one] abc [two]" | ruby -e 'print gets.gsub(/\[.*?\]/,"X") '
X abc X