Formatar exibição ordenada de números com zeros à esquerda no shell


Suponha que os números 23, 13, 2, 1978, 43, 34, 90, 9, 123, 432, 9876 e 12345 precisam ser alinhados com zeros a esquerda e ordenados, como proceder?


Listagem apenas com os Números:
echo "23, 13, 2, 1978, 43, 34, 90, 9, 123, 432, 9876 e 12345"| tr -d ',e'|tr -s ' '
23 13 2 1978 43 34 90 9 123 432 9876 12345


Transformar a listagem em lista:
echo "23, 13, 2, 1978, 43, 34, 90, 9, 123, 432, 9876 e 12345"| tr -d ',e'|tr -s ' '|sed 's/ / \n/g'
23
13
2
1978
43
34
90
9
123
432
9876
12345


Ordenar a Lista:
echo "23, 13, 2, 1978, 43, 34, 90, 9, 123, 432, 9876 e 12345"| tr -d ',e'|tr -s ' '|sed 's/ / \n/g'|sort
123
12345
13
1978
2
23
34
43
432
9
90
9876
Observe que os números não estão na ordem numérica.


Ordenar a Lista Numericamente:
echo "23, 13, 2, 1978, 43, 34, 90, 9, 123, 432, 9876 e 12345"| tr -d ',e'|tr -s ' '|sed 's/ / \n/g'|sort -n
2
9
13
23
34
43
90
123
432
1978
9876
12345

Exibição com Zero a esquerda:
Exemplo:
número 1001 com alinhamento de 5 casas decimais:

printf '%05d\n' 1001
01001

Exibição da Lista Ordenada com Zeros a esquerda:
echo "23, 13, 2, 1978, 43, 34, 90, 9, 123, 432, 9876 e 12345"| tr -d ',e'|tr -s ' '|sed 's/ / \n/g'|sort -n |while read a; do printf '%05d\n' $a; done
00002
00009
00013
00023
00034
00043
00090
00123
00432
01978
09876
12345


Exemplo:
for ((i=1;i<42;i++)); 
    do 
        a=$(printf "%04d\n" $i); 
        echo mkdir -pv ./mcmv/{001929-MF,
      00304-MS,000244-MEC,042672-MCIDADES,
      115257-SAC,002846-MT,042670-MI,092748-SEP,
      001801-SDH,068487-SPM,002852-MME,001927-MMA,
      002837-CC-PR,036670-ME,000316-MJ,017125-MDA,
      003159-MC,001988-MCTI,000263-MRE,001945-MDS,
      000014-MAPA,003162-MDIC,041066-MD,072084-MTUR,
      091624-SECOM-PR}/`echo $a`/{carga,fotos}/{old,logs}; 
    done
O comando acima cria 7201 diretórios em arvore, como o exemplo abaixo: |-001929-MF |--0001 |---carga |----old |----logs |---fotos |----old |----logs |--0002 |---carga |----old |----logs |---fotos |----old |----logs . . . |--0041 |---carga |----old |----logs |---fotos |----old |----logs


Comentários