Use a opção --no-filename
para o grep.
Suprime o prefixo dos nomes de arquivos na saída. Este é o padrão quando há apenas um arquivo (ou apenas entrada padrão) para pesquisar.
grep --no-filename "domain"
Referência: Manual do Grep
Eu tenho alguns arquivos de registros, eles têm mais de 30000 linhas. Eu preciso encontrar o nome "domínio" e salvar em arquivo CSV, mas depois de salvar, todas as linhas no arquivo CSV foi adicionado o caminho e o nome do arquivo de arquivos de entrada no início da própria linha do arquivo CSV. Como posso fazer se não precisar do nome do caminho e do arquivo de entrada para adicionar arquivos CSV?
Exemplo:
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
Atenciosamente, por favor me ajude se alguém souber
Use a opção --no-filename
para o grep.
Suprime o prefixo dos nomes de arquivos na saída. Este é o padrão quando há apenas um arquivo (ou apenas entrada padrão) para pesquisar.
grep --no-filename "domain"
Referência: Manual do Grep
Veja man cut
para detalhes, mas a resposta curta é grep "domain" /home/logs/*.log | cut -d: -f2 >newfile.csv
.
Ou veja man grep
e grep -o "domain" /home/logs/*.log >newfile.csv
PS: grep NÃO imprime o nome do arquivo se houver apenas UM arquivo na linha de comando, como grep "domain" /home/logs/any.log
em seu exemplo. Se você quiser forçar a saída de nomes de arquivos, grep "domain" /home/logs/any.log /dev/null
fará o truque.
Tags network-manager