Tôi có một tệp nhật ký rất lớn và muốn grep sự xuất hiện đầu tiên của một mẫu, và sau đó tìm một mẫu khác ngay sau lần xuất hiện này.
Ví dụ:
123
XXY
214
ABC
182
558
ABC
856
ABC
Trong ví dụ của tôi, tôi muốn tìm 182
và sau đó tìm sự xuất hiện tiếp theo củaABC
Sự xuất hiện đầu tiên rất đơn giản:
grep -n -m1 "182" /var/log/file
Kết quả này:
5:182
Làm thế nào để tôi tìm thấy sự xuất hiện tiếp theo của ABC?
Ý tưởng của tôi là bảo grep
bỏ qua các n
dòng đầu tiên (trong ví dụ trên n=5
), dựa trên số dòng của 182. Nhưng làm thế nào để tôi làm điều đó?
grep
không bắt buộc. Tôi chưa quá quen thuộc với sed
hoặc awk
. Nếu bạn có một giải pháp tốt, hãy để tôi nghe nó! :) @don_crissti chỉ nên in dòng đầu tiên. Tôi không quan tâm đến những sự kiện khác.
grep
được sử dụng? Tôi không nghĩ rằng điều này có thể được thực hiện vớigrep
nhưng nó sẽ dễ dàng vớiawk
hoặcsed
(một mình hoặc kết hợp vớigrep
).