Làm thế nào để in trận đấu đầu tiên và dừng lại với Grep

Lam the nao de in tran dau dau tien va
Bình chọn post

[ad_1]

grep là một tiện ích tìm kiếm trong Linux được sử dụng để đối sánh nội dung. Theo mặc định, nó sẽ in ra bất kỳ dòng nào phù hợp, có thể bao gồm nhiều đầu ra. Nếu bạn chỉ quan tâm đến trận đấu đầu tiên, bạn có thể giới hạn đầu ra chỉ ở dòng đầu tiên.

Giới hạn đầu ra với grep -m

Các grep lệnh có một -m hoặc --max-count tham sốr, có thể giải quyết vấn đề này, nhưng nó có thể không hoạt động như bạn mong đợi.

Bạn Đang Xem: Làm thế nào để in trận đấu đầu tiên và dừng lại với Grep

Tham số này sẽ làm cho grep dừng đối sánh sau khi tìm thấy N dòng phù hợp, điều này hoạt động tốt vì nó sẽ giới hạn đầu ra ở một dòng, luôn chứa kết quả khớp đầu tiên. Chúng tôi có thể xác minh điều này với -n cờ để in số dòng.

grep -m 1 "foo" file

1.JiBnMqyl6S

Xem Thêm : 7 cách hàng đầu để sửa lỗi mã thoát 0

Tuy nhiên, điều này có một số mặt trái mà bạn cần lưu ý. Nó không dừng lại sau N diêmnó dừng lại sau N dòng. Điều này sẽ gây ra grep để khớp nhiều lần trên mỗi dòng, điều này có thể gây ra vấn đề khi sử dụng với -o cờ, in mỗi trận đấu trên một dòng mới.

Ngoài ra, nó chỉ có N dòng mỗi tập tinvì vậy khi được sử dụng với nhiều tệp, nó sẽ in ra dòng phù hợp đầu tiên cho mỗi tệp.

1.JiBnMqyl6S

1.JiBnMqyl6S

Sử dụng đầu để giới hạn đầu ra grep

Cách thay thế là chuyển đầu ra đến một lệnh khác, head, điều này sẽ đơn giản là cắt đầu vào sau N dòng. Nó vẫn còn một chút hữu ích để sử dụng -m 1 với grep tuy nhiên, vì nó sẽ ngừng xử lý các tệp lớn nếu tìm thấy khớp sớm.

grep "foo" file_one.txt | head -1

Xem Thêm : Cách cài đặt Windows 11 trên PC của bạn

Điều này hoạt động với -o cờ để chỉ in kết quả phù hợp đầu tiên, ngay cả khi có nhiều kết quả phù hợp trong một tệp:

1.JiBnMqyl6S

Tuy nhiên, hãy cẩn thận khi sử dụng điều này với nhiều tệp. Sử dụng head sẽ in dòng phù hợp đầu tiên trong bất kỳ tệp nào. Đây có thể là một vấn đề như grep in đầu ra theo thứ tự nó xử lý các tệp và bạn có thể không biết thứ tự các tệp sẽ được xử lý trừ khi bạn sắp xếp chúng theo cách thủ công trước khi chuyển chúng đến grep.

1.JiBnMqyl6S

Tương tự, bạn cũng có thể sử dụng tail để in dòng phù hợp cuối cùng.


[ad_2]

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

Bài viết liên quan

0903064855
chat-active-icon