регулярные - sed regex group



Shell-Sed REGEXP захватывает от слова до конечной запятой и конца строки (2)

Вы можете использовать ярлык. Проверьте, заканчивается ли строка запятой и действуют соответственно:

sed -e '/,$/{s/\( myword.*\)\(,\)$/\2/; ba}' -e 's/\( myword.*\)//' -e :a inputfile

Для ввода введите:

bla bla bla,
ble ble ble
blo blo blo,

https://ffff65535.com

Я борюсь с регулярным выражением, используя sed. Я читаю файл с линиями

word1 word2 myword word4 word5 word6,
lorem ipsum dolor amet myword asinus es 
salut comment ca va myword c'est comme ca,

я хочу получить

word1 word2,
lorem ipsum dolor amet
salut comment ca va,

Это только часть моего файла, поэтому мне нужно работать только по строкам. Все, что я мог найти, было:

echo $line | sed -e 's/\(myword.*\)\(,\)$/\2/g'

Но я только получаю

word1 word2,
lorem ipsum dolor amet myword asinus es 
salut comment ca va,

Я не могу захватить, если есть последняя запятая или нет. Может кто-нибудь мне помочь ?

Вопрос в следующем: я хочу получить все до «myword» и сохранить последнюю запятую, если у меня есть один, с помощью sed regexp

благодаря


Просто избавьтесь от всего, от «myword» до запятой или конца строки:

$ sed 's/\(.*\) myword[^,]*/\1/' file
word1 word2,
lorem ipsum dolor amet
salut comment ca va,




sed