sed для удаления строк с помощью нескольких строка поиска

Одна опция состояла бы в том, чтобы прокрутить ту установку в свой собственный пакет, который необходимо будет поддержать. Но при этом это Вы смогли бы умиротворить проверку зависимости synaptic.

Выполнение этого звучит намного более трудным, чем это. Существует много хороших ресурсов по теме, таких как этот назвал: Прокрутка Ваших собственных пакетов Debian (часть 2), для запущения Вас. Debian обеспечивают dh-make который помогает с большим тяжелым подъемом.

4
21.11.2018, 00:28
4 ответа

с GNU SED:

sed '/DOG/{/29-APR-2015/d}' test1

Этот метод позволяет любому порядку. т.е. Собака может быть до или после даты.

4
27.01.2020, 20:48

POSIXly:

sed -e '/DOG/!b' -e '/29-APR-2015/!b' -e d file

bранчо до конца, если вы не предоставляете никакой метки.

или:

sed '/DOG/{/29-APR-2015/d
}' file

Современные реализации sed также поддерживают форму {command;}, это принятое расширение POSIX, но не требуется:

sed '/DOG/{/29-APR-2015/d;}' file
3
27.01.2020, 20:48

/DOG,29-APR-2015/d не будет работать, потому что между DOG и 9-APR-2015 нет запятой. Попробуйте это;

$ sed -e '/DOG[[:space:]]*29-APR-2015/d' test1.txt 
     DOG          30-APR-2015          
     CAT          29-APR-2015          
     CAT          29-APR-2015   

[[:пробел:]]* допускает нуль или больше пробельных символов между DOG и 9-APR-2015. Символьный класс [:пробел:] допускает как обычные пробелы, так и табуляции и безопасен для использования со шрифтами юникода.

2
27.01.2020, 20:48

Командный файл должен содержать:

/DOG *29-APR-2015/d

То есть DOG с последующими 0 или более пробелами, за которыми следует указанная дата.

1
27.01.2020, 20:48

Теги

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