Як відфільтрувати рядки командного виводу, які зустрічаються у текстовому файлі?


15

Скажімо, у нас є текстовий файл заборонених рядків forbidden.txt. Який короткий спосіб відфільтрувати всі рядки командного виводу, що існують у текстовому файлі?

cat input.txt | exclude-forbidden-lines forbidden.txt | sort

4
fgrep -vxf forbidden.txt input.txt | sort
Satō Katsura

Відповіді:


26

Використовуйте grepтак:

$ grep -v -x -F -f forbidden.txt input.txt

Та довгий список варіантів grepзасобів

  • -vІнвертуйте сенс матчу, тобто шукайте речі, які не відповідають.
  • -xПри узгодженні шаблону вимагайте, щоб візерунок відповідав цілій лінії , тобто не лише де-небудь на лінії.
  • -FПідбираючи шаблон, розглядайте його як фіксований рядок , тобто не як регулярний вираз.
  • -fПрочитайте шаблони з даного файлу ( forbidden.txt).

Потім підключіть до цього sortабо все, що ви хочете зробити з цим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.