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ó-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'
.