Если вы хотите удалить все строки, которые содержат только Hello(number) :
использования ниже :
Пример ввода в file
Hell
Hello1 :
No hello stuff here
Unjulating stuff
Hello2 :
Some sentence
Hello99 :
Script
sed -Ei '/^Hello[[:digit:]]+ :$/d' file
Пример вывода в модифицированном file
Hell
No hello stuff here
Unjulating stuff
Some sentence
Что происходит над
- Использование в паттерне
^
мы проверяем для начала линии.
- Мы проверяем шаблон
Hello(number) :
с использованием Hello[[:digit:]]+ :$
. Обратите внимание, что я использовал -E для включения расширенных регулярных выражений sed, поэтому мне не нужно избегать + ie (\+
). Здесь [[:digit:]]
- класс, который содержит , все десятичные числа и +
используются для проверки того, соответствует ли шаблон ему, по крайней мере, одному времени.
- Проверьте конец строки, используя
$
- Для подходящего шаблона, удалите строки, используя
d
вариант
- Я также использовал SED
inplace edit
вариант -i
так, что изменения непосредственно сохранены в файл.
Если вы хотите изменить линию начинается с Hello(number) :
затем используйте следующий сценарий
sed -Ei '/^Hello[[:digit:]]+ :/d' file
Вы могли бы иметь уведомление, что я просто Убран $
, поэтому наша модель соответствует любой строке, которая начинается с
Надеюсь, это поможет.
Вы пробовали 'sed -i '/^Hello [0-9] [0-9] * []:/d' filename'? Если после '': ''есть дополнительный текст (или вы хотите удалить всю строку), вы можете использовать' sed -i'/^ Hello [0-9] [0-9] * []:. * $/d 'filename' –