Tôi đang cố gắng trả về lần xuất hiện đầu tiên của nhiều chuỗi, tức là tôi muốn chọn các dòng từ văn bản sau, trong đó xuất hiện lần đầu tiên là 1259, 3009 và 1589.Cần grep cho lần xuất hiện đầu tiên của nhiều chuỗi
ADWN 1259 11:00 B23
ADWN 3009 12:00 B19
DDWN 723 11:30 B04
ADWN 1589 14:20 B12
ADWN 1259 11:10 B23
DDWN 2534 13:00 B16
ADWN 3009 11:50 B14
này mang lại cho tôi tất cả các trận đấu:
grep '1259\|3009\|1589' somelog.log
Và điều này mang lại cho tôi chỉ là trận đấu đầu tiên
grep -m 1 '1259\|3009\|1589' somelog.log
Tôi muốn trở lại như sau:
ADWN 1259 11:00 B23
ADWN 3009 12:00 B19
ADWN 1589 14:20 B12
tôi nghĩ rằng tạo một tập tin với req giá trị uired, và sau đó looping thông qua các tập tin, đi qua mỗi số riêng lẻ vào lệnh grep sẽ cho tôi những gì tôi đang tìm kiếm, nhưng tôi đã không tìm thấy một ví dụ về điều này. Có một giải pháp đơn giản cho điều này, là một vòng lặp cách tốt nhất để xử lý này, hoặc có ví dụ này đã được trả lời ở nơi khác?
Cảm ơn trước cho ý tưởng của bạn và suggestions--
Clyde
Steve - cảm ơn, đó là làm những gì tôi hỏi, nó sẽ trả về lần xuất hiện đầu tiên của mỗi giá trị. Tôi đã có một số đọc để làm trên awk, và hiểu cụ thể những gì mã đang làm –
Tôi có thể thêm một lời giải thích nhanh chóng nếu bạn muốn. Hãy ở trong đó ... – Steve
Tốt, tôi đánh giá cao sự giải thích - một số công cụ này có thể khá mờ đục! Tôi chắc chắn sẽ có thể đưa điều này để sử dụng tốt, cảm ơn một lần nữa! –