Classificar arquivos por quantidade de colunas em pastas

Não sei se isso será de utilidade para alguém, mas precisei para poder separar arquivos de layout diferentes. No meu caso, cada layout bancário tem um tamanho fixo por linha (não todos, mas a maioria), por exemplo o CNAB 400, possui 400 caracteres por linha, o CNAB240, possui 240, arquivos de arrecadação bancária, 150 caracteres e assim por diante.

Para isso criei o seguinte script:

caminho="/home/thiago/tmp"
filtro="*.txt"
for file in `ls $caminho/$filtro 2>/dev/null`
do
echo $file
classifica=`head -n1 $file | wc -m`
mkdir $caminho/$classifica 2>/dev/null
mv $file $caminho/$classifica
done

Altere o caminho e o filtro para sua necessidade e o script irá criar uma pasta para cada tamanho de arquivo e irá jogar os arquivos em cada uma dessas pastas. A linha 6 recupera a primeira linha do arquivo ("head -n1") e o "wc -m" conta a quantidade de caracteres retornado pelo "head".

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6