procura por várias condições e, em seguida, redireciona a saída

1

Como você pode procurar por todas as linhas contendo “55 = MSFT” e não conter a string “OPEN” em um arquivo, então redirecionar a saída para um arquivo chamado MSFTFILE?

    
por Prady 09.02.2014 / 10:39

4 respostas

1

grep para a primeira string, em seguida canalize a saída para grep -v , que corresponde a todas as linhas sem OPEN, e direcione a saída para MSFTFILE.

Editar: Use a opção -h do grep para suprimir nomes de arquivos na saída do grep, se necessário.

grep -h -- '55=MSFT' * | grep -v OPEN > MSFTFILE

(no entanto, observe que o segundo grep pode corresponder aos nomes de arquivos)

    
por 09.02.2014 / 10:51
0

Você também pode fazer isso em Perl:

perl -ne 'next if /OPEN/; print if /55=MSFT/;' file > MSFTFILE

Isso deve ser praticamente auto-explicativo: próxima linha se esta linha corresponder a OPEN e imprimir se corresponder a 55=MSFT .

    
por 09.02.2014 / 16:05
0
awk '/55=MSFT/ && ! /OPEN/'

sed -e '/55=MSFT/!d' -e /OPEN/d

grep 55=MSFT | grep -v OPEN

perl -ne 'print if /55=MSFT/ && !/OPEN/'
    
por 09.02.2014 / 16:16
-1
cat filename | grep "55MSFT" > MSFTFILE
    
por 14.02.2014 / 16:33