Eu tenho uma lista de arquivos com o nome:
file.txt file (1).txt file (2).txt file (7).txt
etc.
Onde o maior (número) é o último arquivo atualizado, mas alguns números intermediários podem estar faltando e também existem outros arquivos no diretório.
Como verificar se há um arquivo "duplicado" e, se houver, como copiar o conteúdo de file (maxnumer).txt
para file.txt
e remover todos os file (*).txt
arquivos.
Eu tentei listá-los ls -t file*(*)*.txt
e depois fazer um for
loop, mas isso me dá um erro ( ls
):bash:syntax error near unexpected token '('
Supondo que os carimbos de data e hora não sejam confiáveis, gostaríamos de encontrar o arquivo que tem o maior número entre parênteses no final do nome do arquivo.
Fazendo isso:
Executando:
(remova os comentários
mv
erm
para realmente modificar os arquivos)Isso falharia para nomes de arquivos como
file (2) (30).txt
(estes também seriam correspondidos), pois assume que todos os nomes de arquivos seguem o padrãoprefix (NN)suffix
em queNN
é um número inteiro.