sed + удалить все слова, которые не содержат строку перед "строкой точек"

У Intel есть инструменты для Linux по адресу:Linux Detection and Mitigation Tools

есть форк на GITHUB

1
13.08.2019, 15:04
2 ответа

Вам нужно зафиксировать шаблон в начале строки с помощью ^, а затем разрешить только другие символы, кроме точки ([^.]*), пока не будет найдено ваше ключевое слово:

sed -E '/^[^.]*(linux|LINUX)/!d'

Обратите внимание, что вам нужно добавить фигурные скобки вокруг ваших альтернативных шаблонов. Я переключился на расширенные регулярные выражения, чтобы сделать его более читабельным.

1
27.01.2020, 23:41
$ sed -e '
   h
   s/\..*//;y/linux/LINUX/;/LINUX/!d
   g
' inp.file

Это подход Posix sed, который вы можете использовать.

0
27.01.2020, 23:41

Теги

Похожие вопросы