grep Quảng cáo thứ gì đó any any anyilesiles.log> afile.csv, không cần in đường dẫn nhập và tên tệp vào tệp CSV


9

Tôi có một số tệp nhật ký, chúng có hơn 30000 dòng. Tôi cần tìm tên "tên miền" và lưu trong tệp CSV nhưng sau khi lưu, bất kỳ dòng nào trong tệp CSV đã được thêm đường dẫn và tên tệp của các tệp đầu vào ở đầu dòng tệp CSV. Tôi có thể làm như thế nào nếu tôi không cần đường dẫn và tên tệp đầu vào thêm vào tệp CSV.

Thí dụ:

Input
#cat /home/log/any.log

any things..domain, anything
any things..domain, anything
any things..domain, anything


grep "domain" /home/logs/any.log > newfile.csv

Output:
#cat newfile.csv
/home/logs/any.log:domain
/home/logs/any.log:domain
/home/logs/any.log:domain


#----My requirement output is:

cat newfile.csv
domain
domain
domain

Trân trọng, xin hãy giúp tôi nếu có ai biết

Câu trả lời:


21

Sử dụng --no-filenametùy chọn cho grep.

Loại bỏ tiền tố của tên tệp trên đầu ra. Đây là mặc định khi chỉ có một tệp (hoặc chỉ đầu vào tiêu chuẩn) để tìm kiếm.

grep --no-filename "domain" 

Tham khảo: Hướng dẫn sử dụng Grep


1

Xem man cutđể biết chi tiết, nhưng câu trả lời ngắn gọn là grep "domain" /home/logs/*.log | cut -d: -f2 >newfile.csv.

Hoặc xem man grepvà làmgrep -o "domain" /home/logs/*.log >newfile.csv

PS: grep KHÔNG xuất tên tệp nếu chỉ có MỘT tệp trên dòng lệnh, như grep "domain" /home/logs/any.logtrong ví dụ của bạn. Nếu bạn muốn buộc tên tập tin là đầu ra, grep "domain" /home/logs/any.log /dev/nullsẽ thực hiện thủ thuật.


man cut... Nghe có vẻ đau đớn.
Matt Fletcher
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.