grep & ldquo; что-то & rdquo; anyfiles.log > afile.csv, не нужно печатать путь ввода и имя файла в файл CSV

У меня есть несколько файлов журналов, в них более 30000 строк. Мне нужно найти имя «домен» и сохранить в CSV-файле, но после сохранения в строку CSV были добавлены все строки в CSV-файле пути и имени входного файла. Как это сделать, если мне не нужно добавлять путь и имя входного файла в файлы CSV.

Пример:

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

С уважением, пожалуйста, помогите мне, если кто-нибудь знает

9
задан 25 January 2013 в 08:48

2 ответа

Используйте опцию --no-filename для grep.

Подавить префикс имен файлов при выводе. Это значение по умолчанию, когда для поиска требуется только один файл (или только стандартный ввод).

grep --no-filename "domain" 

Ссылка: Руководство по Grep

0
ответ дан 25 January 2013 в 08:48

Подробнее см. man cut, но краткий ответ - grep "domain" /home/logs/*.log | cut -d: -f2 >newfile.csv.

Или см. man grep и выполните grep -o "domain" /home/logs/*.log >newfile.csv

PS: grep НЕ выводит имя файла, если в командной строке есть только ОДИН файл, как, например, grep "domain" /home/logs/any.log в вашем примере. Если вы хотите, чтобы имена файлов выводились, grep "domain" /home/logs/any.log /dev/null добьется цели.

0
ответ дан 25 January 2013 в 08:48

Другие вопросы по тегам:

Похожие вопросы: