удалить текст между разделителями, несколько раз в каждой строке - PullRequest
2 голосов
/ 23 марта 2019

Мне нужно удалить текст между разделителями "<" и ">", но есть несколько их экземпляров в каждой строке моего текстового файла.

Например, я хочу превратить это:

person 1, person 2<email2@mail.com>, person 3<email3@mail.com>, person 4<email4@mail.com>`

В это:

person 1, person 2, person 3, person 4  

Я пытался использовать несколько вещей, в том числе sed:

sed -e 's/<.*>//' filename.csv

, но при этом удаляется все, что находится между первым < и последним >, что дает результат person 1, person 2.

Ответы [ 2 ]

5 голосов
/ 23 марта 2019

вы можете использовать отрицательный класс символов в своем регулярном выражении:

sed 's/<[^>]*>//g' filename.csv
1 голос
/ 23 марта 2019

Если вы хотите присоединиться к темной стороне, Perl позволяет вам указывать не жадные символы подстановки с помощью ?:

perl -pe 's/<.*?>//g' filename.csv
...