Correspondência de padrões dentro do awk

1

Pretendo modificar a saída de ls -la para exibir a saída do comando file . O comando abaixo funciona bem para o propósito

find /opt -type f | xargs ls -let | awk 'BEGIN { OFS="\t" } { sprintf("file \"%s\"", $10) | getline type; print type,$1,$3,$4 }' | tr ":" "\t"

Agora, quero modificar isso para exibir a saída do comando ldd (separado por vírgula), se a saída do tipo de arquivo corresponder ao padrão "ELF. * execuatble". Eu tentei várias combinações para coincidir com uma palavra-chave usando if dentro desse awk, e se a correspondência for bem sucedida, para executar ldd , mas sem sucesso.

Isso é possível?

O sistema operacional é Solaris e estou trabalhando no ksh.

    
por Prasoon 11.05.2015 / 08:07

1 resposta

2

o awk fornece correspondência de padrões

awk '/ELF*.executable/ { ... }'

EDIT: no seu caso:

find /opt -type f | xargs ls -let | awk 'BEGIN { OFS="\t" } /ELF*.executable/ { sprintf("file \"%s\"", $10) | getline type; print type,$1,$3,$4 }' | tr ":" "\t"
    
por 11.05.2015 / 08:28