Cách sử dụng grep để hiển thị tên tệp và số dòng trước

grep là một tiện ích Linux thường được sử dụng để tìm kiếm nội dung tệp hoặc bất kỳ đầu vào nào được chuyển đến nó. Khi tìm kiếm qua nhiều tệp, sẽ hữu ích khi hiển thị tên tệp và số dòng, đặc biệt khi sử dụng nó để tự động hóa trong các tập lệnh shell.

Hiển thị tên tệp với grep

Theo mặc định, nếu bạn chuyển nhiều tệp đến grepnó sẽ hiển thị filename: trước dòng phù hợp cho rõ ràng. Bạn thực sự có thể tắt hành vi này với -h cờ, sẽ không bao giờ hiển thị tên tệp:

Bạn Đang Xem: Cách sử dụng grep để hiển thị tên tệp và số dòng trước

Tuy nhiên, nếu bạn chỉ chuyển một tệp vào grep, nó sẽ không hiển thị tên tệp theo mặc định. Đây có thể là một vấn đề khi tự động hóa với các tập lệnh shell, vì bạn có thể không biết có bao nhiêu tệp trong một thư mục và nó có thể phá vỡ tự động hóa dựa vào tên tệp ở đó.

Xem Thêm : Cách ẩn và hiện tab trang tính trong Google Trang tính

Các cách khắc phục đơn giản là sử dụng chữ hoa -H lá cờđiều này ngược lại với -h và sẽ luôn bật tên tệp bất kể thế nào, ngay cả khi chỉ có một tệp được chuyển làm đầu vào.

grep -H "foo" file

Các -H cờ có một tác dụng bất ngờ nhưng hữu ích khác — khi được ghép nối với đầu vào từ stdinchẳng hạn như ống Unix, nó sẽ in (standard input): thay cho tên tệp.

Hiển thị số dòng với grep

Xem Thêm : Qualcomm sẽ tiết lộ Chipset Snapdragon thế hệ tiếp theo của mình trên

Bạn cũng có thể sử dụng nó kết hợp với -n cờ để lấy số dòng:

grep -Hn "foo"

Một cuộc tấn công tuân thủ POSIX

Các -H cờ trong grep không tương thích với POSIX và không có sẵn một số hệ điều hành dựa trên Unix khó hiểu hơn. May mắn thay, có một bản hack bạn có thể sử dụng, bằng cách vượt qua /dev/null dưới dạng đầu vào tệp thứ hai giả mạo grepkhiến nó nghĩ rằng có nhiều tệp:


Nguồn: https://maytinhvang.com
Danh mục: TIN HỌC

Bài viết liên quan

0903064855
chat-active-icon