grep “bir şey” anyfiles.log> afile.csv, giriş yolunu ve dosya adını CSV dosyasına yazdırmanıza gerek yok


9

Bazı günlük dosyaları var, 30000'den fazla satır var. Ben adı "etki alanı" bulmak ve CSV dosyasına kaydetmek gerekir ama kaydettikten sonra, CSV dosyasındaki herhangi bir satır CSV dosyasının çok satır başında giriş dosyalarının yol ve dosya adı eklendi. CSV dosyalarına eklemek için yol ve girdi dosya adı gerekmiyorsa nasıl yapabilirim.

Misal:

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

Saygılarımla, kimse bilirse lütfen bana yardım et

Yanıtlar:


21

--no-filenameGrep seçeneğini kullanın .

Çıktıda dosya adlarının önekini bastırın. Aranacak tek bir dosya (veya yalnızca standart girdi) olduğunda bu varsayılan değerdir.

grep --no-filename "domain" 

Referans: Grep Kılavuzu


1

Ayrıntılar man cutiçin bakın, ancak kısa cevap grep "domain" /home/logs/*.log | cut -d: -f2 >newfile.csv.

Veya gör man grepve yapgrep -o "domain" /home/logs/*.log >newfile.csv

Not: Komut satırında grep "domain" /home/logs/any.logörneğin örneğinizde olduğu gibi yalnızca BİR dosya varsa, grep dosya adını ÇIKMAZ . Dosya adlarının çıktısını almaya zorlamak istiyorsanız, grep "domain" /home/logs/any.log /dev/nullişe yarayacaktır.


man cut... acı verici geliyor.
Matt Fletcher
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.