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:
1 | 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.
1 | 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.