Tôi có một tệp nhật ký lớn mà tôi đang cố gắng quét nó cho một từ cụ thể. Nói chung, tôi sẽ có vài từ mà tôi cần phải grep trên tập tin đăng nhập lớn của tôi và in ra dòng có chứa những từ đó.Cách grep cho các dòng có chứa các từ cụ thể trong tệp nhật ký?
Tôi biết cách thực hiện grep đơn giản trên tệp. Giả sử nếu tên tệp của tôi là abc.log
và tôi cần phải tìm một dòng có chứa từ "hello" thì tôi luôn làm như thế này và nó in ra dòng cho tôi.
grep -i "hello" abc.log
Nhưng tôi không biết cách thực hiện grep để kết hợp các từ. Có nghĩa là tôi sẽ có danh sách các từ và tôi sẽ quét tệp abc.log của tôi cho tất cả các từ đó và tôi sẽ in ra các dòng có chứa các từ riêng lẻ.
#!/bin/bash
data="hello,world,tester"
# find all the lines which contains word hello or world or tester
Vì vậy, trong shell script ở trên của tôi, tôi sẽ chia biến dữ liệu của tôi và tìm kiếm chào từ trong abc.log vì vậy bất kỳ dòng chứa chào từ, tôi sẽ in ra và tương tự với thế giới và thử nghiệm là tốt.
Tôi đang cố gắng thực hiện điều này khá chung chung để tôi chỉ cần thêm danh sách các từ trong biến dữ liệu mà không cần chạm vào lôgic thực tế của việc nhập nhật ký.
nhờ o11c. Trong trường hợp của tôi mẫu có thể phát triển rất nhiều để phương pháp tiếp cận tập tin là tốt, nhưng tôi muốn thêm một điều nữa trong này - không in ra dòng nếu nó có chứa một từ cụ thể. Làm thế nào tôi sẽ làm điều này với cách tiếp cận hiện tại của bạn? – john
@ user2809564 ống đầu tiên 'grep' thông qua' grep -v wordtoexclude' (hoặc '-e' hoặc' -f', vv) – o11c
Cảm ơn. Có thể tôi cũng có thể có nhiều mẫu để loại trừ như vậy có cách nào để tạo một tệp có mẫu và mẫu để loại trừ và sau đó sử dụng tệp này để làm grep không? – john