Làm thế nào để tìm kiếm các tập tin có chứa từ cụ thể?
Làm thế nào để tìm kiếm các tập tin có chứa từ cụ thể?
Câu trả lời:
Với dòng lệnh bạn có một số tùy chọn. 3 thứ tôi sử dụng nhiều nhất là ...
locate {part_of_word}
Điều này giả định rằng cơ sở dữ liệu định vị của bạn được cập nhật nhưng bạn có thể cập nhật thủ công với: sudo updatedb
grep
như được giải thích bởi dr_willis. Một nhận xét: -R
sau khi grep
cũng tìm kiếm trong thư mục. Thí dụ:
cd\
grep -R {something_to_look_for} {where_to_look_in}
find . -name '*{part_of_word}*' -print
Thư .
mục bạn đang ở đâu vào lúc này và *
là một ký tự đại diện.
Oh và bạn cũng có thể kết hợp những thứ này. Thí dụ:
locate {something}|grep {some_part_of_something}|more
Nếu tôi nhớ lại một cách chính xác: locate
là cái nhanh nhất (giả sử cơ sở dữ liệu của bạn được cập nhật) và find
là cơ sở dữ liệu chậm nhất. Và grep
là một trong những phức tạp nhất nhưng cũng linh hoạt nhất trong số này vì bạn có thể sử dụng regexes.
grep -R "cái gì" "ở đâu"
thí dụ:
grep -R hello /home
Lệnh grep thường được sử dụng cho việc này.
tên tập tin grep PATTERN
và grep có thể thực hiện một số tìm kiếm rất phức tạp.
willis@Cow:~$ grep --help
Usage: grep [OPTION]... PATTERN [FILE]...
Search for PATTERN in each FILE or standard input.
PATTERN is, by default, a basic regular expression (BRE).
Example: grep -i 'hello world' menu.h main.c
Bạn có thể sử dụng grep
để liệt kê các tệp có word
trong tệp đã cho directory
:
grep -Ril word directory
Ở đây:
* -R
đệ quy tìm kiếm tập tin trong thư mục con.
* -i
bỏ qua trường hợp văn bản
* -l
hiển thị tên tệp thay vì các phần nội dung tệp. (lưu ý: -L
hiển thị tên tệp không chứa từ).
sử dụng man grep
để có được tất cả các tùy chọn
-i
thực hiện tìm kiếm không phân biệt chữ hoa chữ thường.