Para renomear stuff-X.js.test
to stuff.js
(sem saber a extensão antes de .test
) você teria que usar várias expressões para extrair as partes necessárias, por ex. divida o caminho na cabeça h=${path%/*}
e tail t=${path##*/}
, depois, pegue a string antes do traço com ${t%%-*}
e, para a string no meio, obtenha o nome sem extensão, p. noext=${t%.*}
a partir desse extrato, o que agora é a nova extensão com ext=${noext##*.}
, algo como:
find . -name '*-*.test' -exec sh -c 'h=${1%/*}; t=${1##*/}; noext=${t%.*};\
ext=${noext##*.}; fixed=${h}/${t%%-*}.${ext}; echo mv "$1" "$fixed"' sh {} \;