Incrementation des noms de fichiers script

Fermé
HomerFF - 6 déc. 2010 à 16:06
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 6 déc. 2010 à 16:16
Bonjour,

voila tout est dans le titre, si je pouvais avoir un petit coup de pouce merci :)
mes fichiers sont nommés comme ceci:
#ls
1.xml  2.xml 3.xml ect...

je souhaiterai recuperer le plus grand chiffre pour creer un autre fichier incrementer de 1 (4.xml)

j'ai testé comme ceci:
i=$(ls -1 | sed 's/\(.*\)\..*/\1/' | tail -1)
i=$(($i + 1))
touch $i.xml


sauf que ls -l à partir de 1O fichiers se presente comme ceci:
#ls -l
-rw-r--r-- 1 root root 29134 Dec  6 14:26 1.xml
-rw-r--r-- 1 root root  5083 Dec  6 16:44 10.xml
-rw-r--r-- 1 root root 12243 Dec  6 14:30 2.xml
-rw-r--r-- 1 root root   842 Dec  6 15:23 3.xml
-rw-r--r-- 1 root root   842 Dec  6 15:36 4.xml
-rw-r--r-- 1 root root   842 Dec  6 15:29 5.xml
-rw-r--r-- 1 root root   535 Dec  6 15:30 6.xml
-rw-r--r-- 1 root root   842 Dec  6 15:35 7.xml
-rw-r--r-- 1 root root   842 Dec  6 15:37 8.xml
-rw-r--r-- 1 root root   535 Dec  6 15:38 9.xml

comment je peux faire pour créer 11 ect... ?

Merci
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
Modifié par zipe31 le 6/12/2010 à 16:20
Salut,

$ ls 
10.xml  1.xml  2.xml  3.xml  4.xml  5.xml  6.xml  7.xml  8.xml  9.xml 

$ ls -1rv 
10.xml 
9.xml 
8.xml 
7.xml 
6.xml 
5.xml 
4.xml 
3.xml 
2.xml 
1.xml 

$ ls -1rv | head -1 | egrep -o '[[:digit:]]*' 
10 

$ A="$(ls -1rv | head -1 | egrep -o '[[:digit:]]*')" 

$ echo $A 
10 

$  ((A++)) 

$ touch ${A}.xml 

$ ls 
10.xml  11.xml  1.xml  2.xml  3.xml  4.xml  5.xml  6.xml  7.xml  8.xml  9.xml 

;-))

Zen my nuggets ;-)
0