sed用下划线替换括号

时间:2013-07-18 15:14:53

标签: replace sed

我是一名sed初学者并尝试对以下字符串进行替换:

a_b0_24[0][1]应更改为a_b0_24_0__1_

括号内只有数字。括号内的文字只是数字,字母或下划线。

由于

3 个答案:

答案 0 :(得分:3)

检查一下:

kent$  echo 'a_b0_24[0][1]'|sed 's/[][]/_/g'
a_b0_24_0__1_

答案 1 :(得分:1)

这可能适合你(GNU sed):

sed 'y/[]/__/' file

答案 2 :(得分:0)

假设您在名为TEXT的bash变量中有一些文字:

$ echo $TEXT | sed -e 's/\[\|\]/_/g'

要打破这一点:

  • 匹配括号的正则表达式应该类似于“[|]”。括号是文字,中间的管道是“或”。但是,由于括号在正则表达式语言中具有元含义,因此您需要对它们进行转义,以便将它们解释为文字(因此为反斜杠)。至于逃避管道,我不完全确定为什么它是必要的,但没有它就行不通。
  • “g”只是意味着“为所有比赛做这个,而不仅仅是第一个”(它代表“全球”)。