Utilizando o nome corrente do arquivo (“{}”) multiplas vezes no comando find -exec

image_pdfimage_print

Para utilizar o nome atual de um arquivo obtido via find -exec várias vezes num mesmo comando através de “{}”, é preciso utilizar uma das formas apresentadas:

find ./diretorio -name "*padrao_a_ser_buscado*" -exec sh -c 'cut -f8 {} > {}.txt' \;

ou a forma utilizando ordem dos argumentos via shell script, sendo que $0 corresponderia ao nome do comando. $# correspondente ao total de parâmetros e $@ lista todos os parâmetros.

find ./diretorio -name "*padrao_a_ser_buscado*" -exec sh -c 'cut -f8 "$1" > "$1.txt"' x {} \;

As aspas duplas permitirão o correto funcionamento do substituto de argumento e os demais caracteres especiais. O ‘x’ extra preencherá a posição $0 e o nome do arquivo estará em $1.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!