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"
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:
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
Gì 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
\|(không có-Etùy chọn) hoặc bởi|(với-Etùy chọn), đó làgrep 'foo\|bar'hoặc làgrep -E 'foo|bar'.