Use um loop para manipular os arquivos, um por um.
Por exemplo, com while read
:
find . -name '*.json' | while read fname; do
newname=$(jq -r '.billingAccountList[0]' "${fname}").json
mv "${fname}" "${newname}"
done
Usar for
pode ser possível, mas é mais sensível a espaços nos nomes dos arquivos:
for fname in $(find . -name '*.json'); do
... (same as above) ...
Observe também que você está movendo os arquivos para o diretório atual , pois o caminho original está sendo removido, portanto, se você quiser manter a estrutura do diretório:
find . -name '*.json' | while read fname; do
fdir=$(dirname "${fname}")
newname=$(jq -r '.billingAccountList[0]' "${fname}").json
mv "${fname}" "${fdir}/${newname}"
done
Espero que isso ajude!
UPDATE : usando jq -r
como sugerido por @steeldriver. Obrigado!