Làm cách nào để lọc ra các dòng của đầu ra lệnh xảy ra trong tệp văn bản?


15

Giả sử chúng ta có một tệp văn bản của các dòng bị cấm forbidden.txt. Một cách ngắn để lọc tất cả các dòng của một đầu ra lệnh tồn tại trong tệp văn bản là gì?

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

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

Câu trả lời:


26

Sử dụng grepnhư thế này:

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

Đó là danh sách dài các lựa chọn grepcó nghĩa là

  • -vĐảo ngược ý nghĩa của trận đấu, tức là tìm kiếm những thứ không phù hợp.
  • -xKhi khớp một mẫu, yêu cầu mẫu đó khớp với toàn bộ dòng , tức là không chỉ bất kỳ nơi nào trên dòng.
  • -FKhi khớp một mẫu, coi nó như một chuỗi cố định , nghĩa là không phải là một biểu thức thông thường.
  • -fĐọc các mẫu từ tệp đã cho ( forbidden.txt).

Sau đó, ống dẫn đến sorthoặc bất cứ điều gì bạn muốn làm với nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.