como concatenar dois comandos?

1

Por favor, alguém pode me ajudar a concatenar dois comandos no shell, eu teria o resultado do caminho e concatenar com o número de coluna no primeiro campo.

EX:

#this gives me the path of my path directory like this: '/apps/ent/appli_ent/gen/dev/recep/ENTSMETA.20150824.txt'
find $REP_RECEP -name "*META*" -print 

Eu pegaria o resultado desse comando e concatenaria com isso:

#this gives me the number of my colmuns field.
awk -F'|' '{print NF; exit}' 

Quando faço isso:

awk -F'|' '{print NF; exit}' find $REP_RECEP -name "*META*" -print

não funciona ... alguma ajuda por favor?

    
por amine tabenyoussef 15.01.2016 / 11:30

1 resposta

1

A maneira mais segura, que pode trabalhar com nomes de arquivos arbitrários, é usar a opção find de -exec . Isso executará o comando especificado em todos os arquivos / diretórios encontrados por find (de man find ):

       -exec command ;
          Execute  command;  true  if 0 status is returned.  All following
          arguments to find are taken to be arguments to the command until
          an  argument  consisting of ';' is encountered.  The string '{}'
          is replaced by the current file name being processed [...]

Então, você pode fazer:

find "$REP_RECEP" -name "*META*" -exec awk -F'|' '{print NF; exit}' {} \;
    
por 15.01.2016 / 11:56