grep -v -e '^www\.' -e '/' myfile.txt > result.txt
Eu tenho um arquivo. Quero selecionar as linhas que não começam com www.
e não contém barras. Eu quero mostrar o resultado em result.txt
Para alcançar o primeiro requisito:
grep -v '^www\.' myfile.txt > result.txt
.
Para alcançar o segundo, vou tomar resultado.txt e executar:
grep -v '/' result.txt > result2.txt
Existe um atalho melhor para executar vários comandos no arquivo e armazenar o resultado em um arquivo de saída: result.txt
Estou ciente de |
para executar vários comandos em que a saída do comando à esquerda de |
é entrada do comando à direita de |
. O que eu não sei é, no caso do grep ou qualquer outro comando, devo usar o nome do arquivo no comando à direita de |
. Em outras palavras, deveria ser:
grep -v '^www\.' myfile.txt | grep -v '/' > result.txt
OR
grep -v '^www\.' myfile.txt | grep -v '/' mfile.txt > result.txt
Não tenha medo de usar canos. Alexander resposta é o melhor e purrest, mas no caso de eu procurar a melhor fórmula em primeiro lugar, eu uso alguns passos:
head file |grep 'first-condition' |grep 'next-conditon'
:: dá a você
overwiev cat file |grep 'first-condition' |grep 'next-conditon' |wc -l
::
dá valor grep --color 'complex-condition'
:: destaca a seleção real Na etapa final, você pode criar uma regexp muito complexa, por exemplo:
egrep -v '(^www\.)|(/)' myfile.txt > result.txt
Às vezes é necessário usar outros comandos de análise de string awk
, sed
, cut
etc. Usar o pipe é muito útil.
Tags grep text-processing