Как правило, если вы хотите удалить строку , которая соответствует регулярному выражению, тогда все, что вам нужно сделать, это заменить ее пустой строкой. Наиболее простое решение - sed
, которое представлено karafka , другое решение использует awk
, как представлено RavinderSingh13 .
Общий синтаксис будет выглядеть вот так:
sed -e 's/ere//g' file
awk '{gsub(/ere/,"")}1' file
с ere
представлением регулярного выражения. Заметьте, что я использую g
и gsub
здесь для замены всех непересекающихся строк .
Из-за природы регулярного выражения в OP, т.е. оно заканчивается на .*
g
можно отбросить. Это также позволяет нам написать другое решение awk
, которое работает с разделителями полей:
awk -F '-+[0-9]' '{print $1}' file