Удалить строки, соответствующие шаблону, в файле1 и сохранить эти удаленные строки в файле2

Переключение состояния отключения звука для звука работает независимо от настройки уровня звука
отключение звука либо включено, либо выключено, и нет возможности уменьшить/восстановить уровень

Pulseaudio имеет необязательный модуль -роль -приглушение на основе свойства media.role потоков pulseaudio.
По умолчанию потоки «музыка» и «видео» приглушаются, а потоки «телефона» вызывают приглушение.

8
09.09.2021, 08:15
3 ответа

Проверено в GNU Sed:

sed -ni '/zz/!{p;b};w file2' file1

Флаги должны идти в таком порядке -ni.

Пояснение :Не останавливаем скрипт командой d, а устанавливаем флаг -n(молчание )и пишем строки, не соответствующие шаблону командой p(Печатать текущее пространство шаблона )и перейти с помощью bв конец скрипта. Строки, соответствующие шаблону, достигают команды w, которая записывает пространство шаблона в файл.

13
09.09.2021, 09:01
perl -pi -e 'select( /zz/ ? STDOUT : ARGVOUT )' file1 > file2

-iобрабатывает в -месте редактирование файла1. -pпечатает строки после запуска программы perl. Все, что нужно сделать программе, это выбрать, куда пойдет вывод. В этом случае это достигается с помощью ?:для выбора либо стандартного вывода, либо ARGVOUT(, что -iиспользует ).

8
09.09.2021, 15:12

Вот дурацкий метод, ориентированный на канал, использующий GNU grepвместе с утилитойspongeдля удобства:

grep 'zz'      file1 | tee  file2 | 
grep -vf -     file1 | sponge file1

Или без teeи на одну трубу меньше:

grep 'zz'      file1 > file2 
grep -vf file2 file1 | sponge file1
1
10.09.2021, 02:07

Теги

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