Como imprimir encontrar correspondência, bem como executar um -exec

1

Eu queria executar um find e depois executar um script em cada partida; no entanto, eu estava querendo imprimir o nome do arquivo correspondente acima da saída de cada exec . Como posso produzir a seguinte saída:

$ find . -name 'something' -exec sh script.sh {} \;
./something_1
output from 
script.sh something_1
./something_2
output from
script.sh something_2

Atualmente, estou recebendo apenas a saída de script.sh . Eu tentei -exec echo {} && sh script.sh {} \; sem sucesso.

Eu preferiria uma solução usando -exec ou xargs -print0 , ou seja, não propenso a problemas com espaço em branco.

    
por Aaron 01.03.2013 / 05:39

2 respostas

6

find imprime todos os arquivos correspondentes por padrão, se você não especificar nenhuma outra ação.

Quando você faz -exec ... , ele substitui o -print .

Quando você coloca duas ações uma ao lado da outra, isso significa AND .

Então, faça as duas coisas:

$ find . -name 'something' -print -exec sh script.sh {} \;
    
por 01.03.2013 / 06:18
0

Tente fazer isso:

$ find . -name 'something' -exec sh script.sh {} \; |
    script.sh |
    script.sh
    
por 01.03.2013 / 08:27

Tags