Sort -g est utilisé pour trier les nombres par ordre croissant.
anthony@mtt3:~$ sort --help | egrep "\-g"
-g, --general-numeric-sort compare les valeurs numériques générales
Le ligne de commande suivante itère sur un fichier contenant les noms des fichiers PDF et récupère uniquement les nombres avec egrep -o et utilise sort -g pour trier les nombres dans l'ordre croissant. Ensuite, il envoie ces nombres à sed et les insère. Ensuite, il se débarrasse des doublons avec uniq.
Au lieu de uniq, vous pouvez également utiliser awk :
awk '!x[$0]++'
Le code ci-dessus est équivalent à uniq.
Ce que vous recherchez, c'est cette commande :
for i in `cat tmp | egrep -o "[0-9]*" | sort -g`; do cat tmp | sed "s/\(^[a-z]*\)\([0-9]*\)\(\.pdf\)/\1$i\3/g" | uniq; done
Contenu de tmp :
anthony@mtt3:~$ cat tmp
cwcch10.pdf
cwcch11.pdf
cwcch12.pdf
cwcch13.pdf
cwcch14.pdf
cwcch15.pdf
cwcch16.pdf
cwcch17.pdf
cwcch18.pdf
cwcch1.pdf
cwcch2.pdf
cwcch3.pdf
cwcch4.pdf
cwcch5.pdf
cwcch6.pdf
cwcch7.pdf
cwcch8.pdf
cwcch9.pdf
MODIFICATION :
Sortie de la commande :
anthony@mtt3:~$ for i in `cat tmp | egrep -o "[0-9]*" | sort -g`; do cat tmp | sed "s/\(^[a-z]*\)\([0-9]*\)\(\.pdf\)/\1$i\3/g" | uniq; done
cwcch1.pdf
cwcch2.pdf
cwcch3.pdf
cwcch4.pdf
cwcch5.pdf
cwcch6.pdf
cwcch7.pdf
cwcch8.pdf
cwcch9.pdf
cwcch10.pdf
cwcch11.pdf
cwcch12.pdf
cwcch13.pdf
cwcch14.pdf
cwcch15.pdf
cwcch16.pdf
cwcch17.pdf
cwcch18.pdf