Analisar a saída de ls
raramente é uma boa ideia devido à grande variedade de caracteres que podem ocorrer em nomes de arquivos. Uma solução melhor pode ser:
find ./test_file -iname "*error*" -print0 | xargs -0 -I {} mv {} Error_directory
Observe a opção -iname
. Isso retornará correspondências insensíveis a maiúsculas e minúsculas, permitindo localizar e mover arquivos como:
abc_ERRor.csv
error_123.csv
ErRoR_77.csv
Se você não precisa que sua pesquisa seja insensível a maiúsculas e minúsculas, algo tão simples como isso deve ser suficiente:
mv test_file/*Error* Error_directory
Leitura adicional: