Supondo que o seu grep
suporta --color
:
grep --color=always -rnw -e 'pattern' 'path-file' | sed -e 's/:/ - /;s// - /'
Eu tenho um arquivo e quero pesquisar algum texto nesse arquivo e exportar o caminho do arquivo, o índice de linha do conteúdo iIsearched e o conteúdo da linha.
Eu uso este comando:
grep -rnw 'path-file' -e 'patter'
mas o resultado é:
tree.sh:1:abc xyz
Como posso obter cada linha no formulário:
tree.sh - 1 - abc xyz
Supondo que o seu grep
suporta --color
:
grep --color=always -rnw -e 'pattern' 'path-file' | sed -e 's/:/ - /;s// - /'
Você pode analisá-lo com o awk:
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $1}'
tree.sh
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $2}'
1
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $3}'
abc
$ echo "tree.sh:1:abc xyz" | awk 'BEGIN {FS=":| "} {print $4}'
xyz
Como a pergunta original foi modificada, estou adicionando a opção sed:
$ echo "tree.sh:1:abc xyz" | sed -e "s/:/ - /g"
tree.sh - 1 - abc xyz
Tags grep text-processing shell