Olá.
Atualmente tenho um trecho de código que está dessa forma:
LIST="palavra1 palavra2 palavra3 palavra4"
cat $ARQUIVO |\
grep -v "palavra1" |\
grep -v "palavra2" |\
grep -v "palavra3" |\
grep -v "palavra4" > relatorio.txt
Eu gostaria de fazer algo assim:
LIST="palavra1 palavra2 palavra3 palavr
Ola
Veja este exemplo:
$ seq 1 10 | grep -vE '2|3|4|5'
1
6
7
8
9
10
vc pode montar uma expressão regular com as suas palavras e usar um grep apenas.
;-)
On 12/24/06, Jorge Barros de Abreu <[EMAIL PROTECTED]> wrote:
>
> Olá.
>
> Atualmente tenho um trecho de código que está dessa forma:
>
> L
Olá Jorge,
A solução anterior cobre o caso de palavras com um prefixo comum.
Porém, caso as palavras sejam não tenham um prefixo comum, você pode usar
uma EXPREG com agrupamento e "ou":
ER="(palavra1|palavra2|palavra3|palavra4)"
grep -vE "$ER" $ARQUIVO
outro exemplo:
ER="(bash|awk|sed|perl|pyt
Amigos da lista
tenho a seguinte situação:
- um qmail com ocr ocasionalmente trava em determinados momentos e é necessário
finalizar o processo do ocr para o mta continuar processando a fila de
mensagens.
- este ocr quando trava envia um código de erro no arquivo /var/log/maillog
com um tail -f
Para fechar o tópico.
A solução surgiu graças à colaboração dos colegas de lista.
Eu preciso da LIST intacta para um processamento posterior.
A solução satisfatória ficou assim
cat $ARQUIVO | grep -vE "(`echo $LIST | tr ' ' '|'`)" > relatorio.txt
Em 24/12/06, Jorge Barros de Abreu <[EMAIL PROT
Fala Jorge,
vc poderia dar somente uma passada, não usando o for. Veja:
$ grep -Ev $(echo $LIST | sed 's/^/(/;s/ /|/g;s/$/)/') ARQUIVO
O sed transforma LIST em: (palavra1|palavra2|palavra3 |palavra4) e para o
grep -E esta construção significa palavra1 'ou' palavra2 'ou' ... 'ou'
palavran
O one-l