我怎么能在sed说这个?

时间:2010-09-03 23:56:24

标签: regex sed

我有

text text text [text text] \n
text text text [text text] \n

我想要

text text text \n
text text text \n

我可以使用哪种RE?

3 个答案:

答案 0 :(得分:4)

无论\n是行尾还是反斜杠和字母'n',以下内容都有效:

sed 's/\[.*] //' $file

该模式查找一个开放的方括号,后跟任意字符序列,直到最后一个关闭的方括号和后面的空格(如果有几个)。您可以将“.*”细化为“[^]]*”以匹配任何不是紧密方括号的内容;这只会删除第一个方括号。

答案 1 :(得分:2)

/[^\[]*/可以帮到你。如果[...]之后没有任何内容出现,那就足够了。

答案 2 :(得分:1)

你可以使用awk

$ more file
text [dont want text here ] text text [ dont want text] \n
text text text [ dont want text] \n

$ awk -vRS=']'  '/\[/{gsub(/\[.*/,"")}1' ORS="" file
text  text text  \n
text text text  \n