Как я могу сказать это в седе? - PullRequest
2 голосов
/ 04 сентября 2010

У меня есть

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

Я хочу

text text text \n
text text text \n

Какой RE я могу использовать?

Ответы [ 3 ]

4 голосов
/ 04 сентября 2010

Следующее работает независимо от того, является ли \n концом строки или обратной косой чертой и буквой 'n':

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

Шаблон ищет открытую квадратную скобку, за которой следует любая последовательностьсимволы до последней закрывающей квадратной скобки и следующего пробела (если их несколько).Вы можете уточнить '.*' в '[^]]*', чтобы сопоставить все, что не является квадратной скобкой;это удаляет только первую квадратную скобку закрытия.

2 голосов
/ 04 сентября 2010

/[^\[]*/ дает вам большую часть пути.Если после [...] ничего не появляется, этого достаточно.

1 голос
/ 04 сентября 2010

вы можете использовать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...