Se todos os arquivos correspondentes estiverem no diretório atual (e não em qualquer subdiretório ou se os nomes dos subdiretórios não contiverem -
), você poderá usar as etapas 1 a 3:
find -regex '.*/[0-9]+-[0-9]+-[0-9]+-NEW\.XML' | sort --field-separator=- --key=2 > filelist
e para o passo 4:
while IFS= read -r line; do
cp -v $line /PATH/TO/DESTFOLDER/
done < filelist
Explicação: O padrão regexp de find
corresponde a todos os arquivos com o padrão descrito. sort
separa os campos por -
e classifica primeiro de acordo com o segundo campo (data) e depois de acordo com os seguintes campos, aqui o terceiro campo (tempo).
A maneira de processar linhas em um shell é descrita aqui . Cada linha é armazenada na variável $line
e copiada para a pasta de destino. A opção -v
de cp
exibe qual arquivo está copiado no momento.