Tìm kiếm tệp cho regex và trả về tệp nào chứa kết quả khớp


0

Tôi đã tìm kiếm khắp nơi nhưng không tìm ra cách trả lại nội dung tệp khớp với các từ đã cho hoặc biểu thức chính quy.

cat /tmp/*.txt | grep "strings"

Câu trả lời:


4

Bạn chỉ có ý nghĩa với grep (các) tập tin thay vì (vô dụng) cat ing nó / họ đến grep?

grep strings /tmp/*.txt

cat không phải là nó kết hợp tất cả *.txt tập tin thành một "tập tin" lớn. nếu bạn cat nhiều tập tin, grep do đó sẽ chỉ nhìn thấy một đầu vào mà không có tên thật là tất cả các tệp của bạn được kết hợp, được cung cấp qua đường ống. Điều này sẽ không giúp bạn có được tên tệp, vì về cơ bản bạn đã tạo mọi thứ thành một tệp lớn.

Nếu bạn chỉ muốn grep để trả lại các tệp phù hợp, sử dụng -l Tùy chọn:

grep -l strings /tmp/*.txt

Nếu bạn muốn tìm kiếm chuỗi_s_ (nhiều hơn một), hãy phân tách chúng bằng cách \| (không có -E tùy chọn) hoặc bởi | (với -E tùy chọn), đó là grep 'foo\|bar' hoặc là grep -E 'foo|bar'.
Uwe

ack là một công cụ thay thế tuyệt vời cho loại điều này
Ciclamino
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.