Làm cách nào để tìm kiếm tên tệp trong một chuỗi?

Lệnh grep từ Linux là một trong những lệnh mạnh mẽ để tìm các tệp có chứa một số văn bản, nhưng khi bạn sử dụng grep, it not only print the file name but also the line, which is including the matching text. This is actually required and needed in most situations. Still, sometimes you only want to grep chỉ hiển thị tên tệp và đường dẫn chứ không phải văn bản phù hợp. Ví dụ: khi bạn đang tìm kiếm một số cấu hình như tên máy chủ Linux hoặc cơ sở dữ liệu trên tất cả các tệp cấu hình trong máy chủ ứng dụng của mình, thì bạn chỉ muốn xem tệp nào chứa các tham chiếu đó.

Vì nhiều tệp chứa tham chiếu cơ sở dữ liệu nên bạn có thể nhận được nhiều dữ liệu khi xuất ra, vì vậy nếu bạn chỉ quan tâm đến tất cả các tệp chứa văn bản phù hợp, bạn có thể sử dụng  grep -l option. This option of grep only shows filenames that contain matching text.

Nhân tiện, kiến ​​thức tốt về các lệnh thiết yếu của Linux như find, grep, awk và sed sẽ giúp ích rất nhiều trong việc cải thiện các kỹ năng Linux cũng như nâng cao năng suất của bạn. Do đó, tôi cũng khuyên bạn nên tham gia một trong các khóa học dòng lệnh Linux trực tuyến này để tìm hiểu sâu về các nguyên tắc cơ bản của Linux.

Linux đã tồn tại hơn 40 năm và tôi chắc chắn rằng nó sẽ vẫn còn phù hợp trong những năm tới. Điều này có nghĩa là bất kỳ khoản đầu tư nào bạn đã thực hiện để học các lệnh Linux như grep sẽ hữu ích trong nhiều năm tới.


ví dụ grep - l


Dù sao thì, hãy hiểu tùy chọn -l trên lệnh grep làm gì; .

-l
(Bức thư ell. ) Chỉ ghi tên của tệp chứa
dòng đã chọn vào đầu ra tiêu chuẩn. Tên đường dẫn được viết một lần cho mỗi tệp được tìm kiếm.
Nếu đầu vào tiêu chuẩn được tìm kiếm, tên đường dẫn của (đầu vào tiêu chuẩn) sẽ
được viết bằng ngôn ngữ POSIX. Ở các ngôn ngữ khác, đầu vào tiêu chuẩn có thể
được thay thế bằng thứ gì đó phù hợp hơn ở các ngôn ngữ đó.

và đây là lời giải thích về lệnh grep -l từ trang grep man.

-l, --files-with-matches
Ngăn đầu ra bình thường; . Quá trình quét
file from which output would normally have been printed. The
sẽ dừng ở lần khớp đầu tiên. (-l được chỉ định bởi
POSIX. )


Tùy chọn này thường được sử dụng với grep -iR , tìm kiếm đệ quy các tệp chứa văn bản phù hợp trong các thư mục con. grep -i dành cho tìm kiếm không phân biệt chữ hoa chữ thường. Tôi thường sử dụng grep -iRl để in tất cả các tệp trên các thư mục chứa một số văn bản phù hợp như tên máy chủ, Địa chỉ IP hoặc một số tham số cấu hình.

Khi bạn thường tìm kiếm mà không có grep -l , nó sẽ in tất cả các tệp có văn bản phù hợp cũng như được hiển thị trong ví dụ sau.

$ grep -iR Intel *
2015/jan/cpu.txt:Intel i7 is best CPU
2015/motherboard.txt:Intel Motherboard is best you should always buy that.
hardware.txt:Intel Corei7

Tùy chọn này in tất cả các tệp có đường dẫn đầy đủ chứa văn bản phù hợp, như minh họa bên dưới.

$ grep -iRl Intel *
  2015/jan/cpu.txt
  2015/motherboard.txt
  hardware.txt


Nhân tiện, đường dẫn được in ra là đường dẫn tương đối từ thư mục hiện tại chứ không phải đường dẫn tuyệt đối từ thư mục gốc hoặc (/). Nếu bạn muốn tìm hiểu thêm về cấu trúc thư mục Linux, thì các khóa học trực tuyến miễn phí về Linux này là điểm khởi đầu tốt.



Đây là ảnh chụp màn hình ví dụ về lệnh grep để chỉ liệt kê các tên tệp có Chuỗi phù hợp trong Linux.

Làm cách nào để tìm kiếm tên tệp trong một chuỗi?




Đó là tất cả về ví dụ lệnh grep để in tên tệp chứa Chuỗi phù hợp. Bạn cũng đã học cách kết hợp grep -l với grep -i . Bạn chỉ có thể chạy lệnh này từ thư mục cấp cao nhất e. g. home hoặc / thư mục hoặc có thể là danh sách cấp cao của ứng dụng của bạn như  grep -R to recursively search for all files containing some matching text. You can just run this command from a top-level directory e.g. home or / directory, or maybe a high-level list of your application like /home/appuser/app thư mục. Đây là một trong những công cụ mạnh mẽ để tìm ra các phụ thuộc trong khi di chuyển từ máy chủ này sang máy chủ khác.


Hướng dẫn liên quan đến lệnh UNIX
Nếu bạn là nhà phát triển Java thường xuyên làm việc trong môi trường Linux hoặc UNIX thì bạn cũng sẽ thấy các hướng dẫn sau hữu ích.
  • 10 ví dụ về lệnh find trong UNIX (ví dụ)
  • 10 ví dụ về lệnh xargs trong Linux (ví dụ)
  • 10 ví dụ về lệnh tar trong UNIX (ví dụ)
  • 10 ví dụ về Vim trong UNIX (ví dụ)
  • Cách tạo, cập nhật và xóa liên kết mềm trong UNIX (lệnh)
  • 10 ví dụ về lệnh grep trong UNIX (ví dụ)
  • 10 ví dụ về lệnh date trong Linux (ví dụ)
  • Cách lấy địa chỉ IP từ tên máy chủ và ngược lại trong Linux (lệnh)
  • Cách xóa các tệp và thư mục trống trong UNIX (giải pháp)
  • 5 ví dụ về lệnh sắp xếp trong Linux (ví dụ)
  • 5 ví dụ về lệnh kill trong Linux (ví dụ)
  • 10 ví dụ về lệnh chmod trong UNIX (ví dụ)
  • Làm thế nào để tạo một cây thư mục trong một lệnh?
  • Làm thế nào để bao lâu đối số của một quá trình trong Solaris (lệnh)
  • Lệnh UNIX để tìm hiểu quá trình đang chạy trong bao lâu?
  • Lệnh UNIX để tìm kích thước của tệp và thư mục?
  • 10 lời khuyên để làm việc nhanh trong UNIX?

Thanks a lot for reading this far. If you like this example of the grep command to show only filenames without matching text, then please share it with your friends and colleagues. If you have any questions or feedback, then please drop a note.

P. S. - If you want to learn Linux and looking for some free resources like books and online courses, then you can also check out this list of free Linux courses for Programmers and IT Professionals. This list contains some of the best free courses from Udemy, Pluralsight, Coursera, Codecademy, and other online platforms.