Как извлечь строки, начинающиеся с `Subject:` из большого количества файлов?

Запустите sudo lshw -c network и найдите имя драйвера для вашей беспроводной карты. Запустите lsmod | grep DRIVERNAME, чтобы показать точное имя драйвера. Затем добавьте строку в /etc/modprobe.d/blacklist.conf, в которой указан черный список EXACTDRIVERNAME. Это остановит загрузку модуля wifi во время загрузки. Запустите sudo modprobe EXACTDRIVERNAME в любое время, чтобы перезапустить Wi-Fi.

Это работает довольно эффективно, но это не лучшее решение. Он не отключает беспроводную карту. Он просто не позволяет ОС использовать его, но он все еще может работать, потребляя энергию аккумулятора.

1
задан 27 November 2015 в 20:35

2 ответа

Используя grep с -r для рекурсивного поиска и -m1, чтобы остановить чтение файла после первого совпадения.

grep -rh -m1 '^Subject:' /path/to/your/folder/ > out

Все соответствующие строки находятся в out.

3
ответ дан 23 May 2018 в 15:27
  • 1
    tankx A.B. все нормально. но все же его совпадают строки с именем файла. я не получаю связь, почему она дает имя файла.? (например: spmsgc66.txt: Subject: счета под управлением ежемесячного менеджера счетов 98/99) – Miller 27 November 2015 в 19:47
  • 2
    Извините моя ошибка. Исправленный. – A.B. 27 November 2015 в 19:53
  • 3
    Кроме того, поскольку вы используете *, если у /path/to/your/folder/ нет подкаталогов для поиска, -r тоже избыточно. – heemayl 27 November 2015 в 20:16
  • 4
    @heemayl извините, теперь я в замешательстве. Вы имеете в виду, что grep -rh '^Subject:' /path/to/your/folder/ достаточно? – A.B. 27 November 2015 в 20:19
  • 5
    @ A.B. yes..unless OP хочет искать только в /path/to/your/folder/, в этом случае вам нужно grep -h '^Subject:' /path/to/your/folder/*.txt :) – heemayl 27 November 2015 в 20:21

Использование sed из любого места:

sed -n '/^Subject:/p' /path/to/dir/*.txt

Из каталога, содержащего файлы:

sed -n '/^Subject:/p' *.txt

/^Subject:/ будет соответствовать только строки, начинающиеся с Subject:.

Чтобы сохранить вывод в файле:

sed -n '/^Subject:/p' *.txt >output.file
1
ответ дан 23 May 2018 в 15:27

Другие вопросы по тегам:

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