Que tal isso?
grep -i -e "INPUT||||select '.*' as SOR" test.in
INPUT||||SELECT 'BLABLA' as SOR'
- Onde INPUT |||| SELECT (Insensível a maiúsculas e minúsculas) inicia uma linha Onde o conteúdo entre aspas simples (BLABLA) é aleatório, então eu preciso de um curinga aqui. - Onde 'como SOR' não faz distinção entre maiúsculas e minúsculas
EXEMPLO DE UM DO ARQUIVO DE DADOS PROCURADO:
1) INPUT||||select 'LLC'
2) INPUT||||select 'LLC' as SOR, b.cust_id_num, b.cust_federal_id_num, ...
3) INPUT||||select distinct 'LLC' as SOR, b.cust_id_num, b.cust_federal_id_num, ...
4) INPUT||||select 'BBD' as sor, b.cust_id_num, b.cust_federal_id_num, ...
5) INPUT||||SELECT 'GOD' $VAL, b.cust_ID_num, a, cust live num...
6-+++)...
A pesquisa bem-sucedida deve resultar no seguinte:
-1ª linha seria ignorada, sem iteração de 'as sor'
Linha -2 seria capturada porque atende a todos os critérios
-3rd linha seria ignorada porque 'distinto' aparece entre 'select' e 'sor'
-4ª linha seria capturada porque atende a todos os critérios
-5ª linha seria ignorada, sem iteração de 'as sor'
Eu tentei muitas coisas sem sorte:
find . -type f -iname "*.dat" -exec sh -c awk '/INPUT||||select/ && /'as SOR'/' "{}" \; > FILE.log
find . -type f -iname "*.dat" -exec grep 'INPUT_SELECT\|as sor' {} \; > FILE .log
Eu realmente pensei que algo assim iria funcionar no meu roteiro, mas não teve essa sorte!
grep -i "INPUT\||||select \<'...'\> as sor" ...
Eu tentei todos os tipos de escapes e citações para acertar as coisas, mas ainda estou retornando registros que não atendem aos critérios no mentioend do pedido. Obrigado antecipadamente!
Tags grep find awk shell-script