|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : août 2008 Messages : 223 ![]() |
Bonsoir,
je suis pas un pro du shell et je me prends la tête sur un bout de code qui je pense est presque bon. Mais je n'ai pas encore pu le tester car il me manque ce pour quoi je viens ici pour le lancer. J'explique : j'ai une vingtaine de fichiers de log nommés comme suit : toto_1.log tot_2.log ... toto_20.log que je voudrais concaténer dans un seul fichier log : toto.log mais dans l'ordre et dans une boucle; puis supprimer tous les fichiers toto_*.log Exemple : toto_1.log dans toto.log puis toto_2.log dans toto.log etc... Voici mon script shell : Code bash :
Alors si ça se trouve, même ce code là est faux mais j'en sais rien encore. Mais de toute façon le problème est pas là : savez vous comment ordonner le traitement de la boucle de façon à ce soit traités les fichiers dans l'ordre...? Merci d'avance pour votre aide. Mederik |
||
|
|
10
|
|
|
#2 | ||
|
Membre du Club
![]() Inscription : août 2008 Messages : 223 ![]() |
Bon finalement,
je me suis corrigé tout seul. 1 - Tout d'abord il semble que le "ll" classe tout seul les fichiers dans le bon ordre 2 - ensuite il ne fallait pas un "ll" mais un "ls" 3 - il ne fallait pas déclarer la variable au tout début "var liste_fichiers_log" 4 - il fallait faire un cat $fichier et donc le bon code est Code bash :
|
||
|
|
11
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 072 ![]() |
Bonjour,
Je n'utilise jamais ls dans un script. Code bash :
|
||
|
|
20
|
|
|
#4 | ||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 968 ![]() |
Code :
__________________
ɹǝsn *sıɹɐlos* |
||
|
|
10
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 072 ![]() |
ah ? j'ai pris «dans l'ordre» dans le sens où mederik voulait toto_1, toto2_…toto_10
les shells, que j'ai testés, ordonnent comme si les nombres étaient des lettres et non des valeurs numériques. bash et ksh affichent toto_10 toto_11 ... toto_19 toto_1 ... pour ash, c'est toto_1 toto_10 toto_11 ... |
|
|
10
|
|
|
#6 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 968 ![]() |
Je n'avais pas vu la subtilité à propos de l'ordre, mais mederik semble se contenter d'un ordre alphanumérique.
Il manque aussi une sécurité a vos scripts: Si le disque est plein au moment où on l'exécute, on pert tous les fichiers ...
__________________
ɹǝsn *sıɹɐlos* |
|
|
01
|
|
|
#7 | |||||
|
Membre du Club
![]() Inscription : août 2008 Messages : 223 ![]() |
Citation:
toto_01 toto_02 ...toto_10 toto11 etc... et comme à l'affichage de ma console en faisant un ls ils étaient classés non pas comme ca Citation:
toto_01 toto_02 ...toto_10 toto11 etc... alors j'ai assumé que mon ls dans mon petit script le ferait aussi. Mais si je me suis gouré alors je vais décripter ce que fait Citation:
Quand je pense que j'étais fier de mon petit script trouvé tout seul
|
|||||
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 968 ![]() |
Mederik, tes réponses ne sont pas claires.
Tu semble confirmer que tu te contentes du classement alphanumérique puisqu'avec les noms de fichiers que tu montres (toto_01, toto_02, ..., toto_10), ce classement est identique au classement numérique. Ca ne serait pas le cas si les fichiers étaient nommés toto_1, toto_2, ..., toto_10. Je te conseille ma suggestion qui est plus portable, plus sûre et plus simple à comprendre que celle utilisant un tableau: Code :
__________________
ɹǝsn *sıɹɐlos* |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com