Procura por 2 strings em um arquivo e gera a (s) linha (s) contendo ambas as strings

0

Então eu quero passar 2 strings e filename da linha de comando e procurar por ambas as strings no arquivo. Exemplo de entrada: script.sh file.txt AB 78
Exemplo de saída: 001,AB,cse,78

(onde o arquivo tem essa linha entre outras que não combinam)

Minha tentativa:

'#/usr/bin/env bash'  
'grep '$2.*$3\|$3.*$2' $1'

No entanto, isso não funciona. Alguém pode ajudar?

    
por user210578 15.01.2017 / 16:30

1 resposta

1

Você precisa alterar sua cotação entre aspas duplas para permitir que $2 e $3 sejam expandidos para sua string de pesquisa:

#/usr/bin/env bash
grep "$2.*$3\|$3.*$2" $1

Uma explicação melhor está aqui:

link

    
por 15.01.2017 / 17:31