Para grep, o símbolo pipe separa strings em um regexp de combinação; em alguns sistemas, pode ser necessário usar o egrep para ativar essa funcionalidade:
[madhatta@anni ~]$ egrep 'exact|obsol' /etc/yum.conf
exactarch=1
obsoletes=1
Espero que a sintaxe seja semelhante para o awk.
Editar: yup:
[madhatta@anni ~]$ awk '/exact|obsol/ {print $1}' /etc/yum.conf
exactarch=1
obsoletes=1
Editar 2:
Você esclareceu sua solicitação, eis como fazer isso com o grep:
grep -l keyword1 * | xargs -d '\n' grep -l keyword2
Isto irá procurar todos os arquivos em um determinado diretório ( *
) para keyword1, passando a lista de arquivos correspondentes para o segundo grep, que irá procurar pela segunda string, via xargs. Eu tenho medo de não me incomodar em fazer isso com awk
, pois está começando a parecer um problema de lição de casa. Se você tiver um caso comercial para usar o awk, avise-nos.