Как мне объединить эти два регулярных выражения grep

Установите усиление усиления микрофона наушников на 10 дБ. Любое другое значение вызывает раздражающий фоновый шум в наушниках. Это можно сделать с помощью amixer :

amixer -c0 sset 'Headphone Mic Boost' 10dB

Чтобы это происходило автоматически при каждом подключении наушников, установите acpid .

Запустите его, выполнив: sudo systemctl start acpid.service

Включите его, запустив: sudo systemctl enable acpid.service

Создайте следующее событие сценарий / etc / acpi / headphone-plug

event=jack/headphone HEADPHONE plug
action=/etc/acpi/cancel-white-noise.sh %e

Затем создайте сценарий действия / etc / acpi / cancel-white-noise.sh :

#! /bin/bash
amixer -c0 sset 'Headphone Mic Boost' 10dB

Теперь усиление микрофона наушников будет устанавливаться на 10 дБ при каждом подключении наушников. Чтобы это стало эффективным, вам необходимо перезагрузить ноутбук.

1
28.04.2017, 18:33
2 ответа

Путем... объединения шаблонов?

grep -e '[Yy].*[Yy].[Ee][Ee][Ee][Ee].*[Yy].*[Yy]' first.txt

Или вы имели в виду выполнение логического И двух шаблонов?

Если последнее, то нужно его подделать, так как в то время как grep имеет встроенное ИЛИ (|) и НЕ (-v; [^]), он не имеет встроенного И. Один из способов — направить вывод одного grep в другой:

grep -e '[Yy].*[Yy].[Ee][Ee]' first.txt | grep '[Ee][Ee].*[Yy].*[Yy]' 

Другой способ — искать оба шаблона последовательно, в любом порядке, с помощью логического ИЛИ (сокращенно для краткости):

grep -Ee 'pattern1.*pattern2|pattern2.*pattern1' input.txt

Я нахожу первый более кратким и простым в обслуживании.

5
27.01.2020, 23:14

Вы можете найти оба шаблона одновременно, используя \|между каждым шаблоном.

grep -e '[Yy].*[Yy].[Ee][Ee]'\|'[Ee][Ee].*[Yy].*[Yy]'
2
27.01.2020, 23:14

Теги

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