Bonjour à tous,
J'ai un fichier texte qui contient la liste de plusieurs choses tel que :
J'ai créer un petii script qui va pouvoir ajouter le fruit Cerise au bon endroit (dans la catégorie Fruit) et entre Banane et Fraise par ordre alphabétique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 >> COULEURS << 1) Bleu 2) Jaune 3) Rouge 4) Vert >> FRUITS << 5) Banane 6) Fraise 7) Kiwi
Il renomme également le fichier pour me donner du coup ceci :
Le souci c'est que pour ce faire, je fais une boucle sur mon fichier ligne par ligne, à partir de la chaine "5)" pour incrémenter chaque valeur...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 >> COULEURS << 1) Bleu 2) Jaune 3) Rouge 4) Vert >> FRUITS << 5) Banane 6) Cerise 7) Fraise 8) Kiwi
La ça va le fichier est petit, mais le mien en réel fait 100 lignes, donc le temps d’exécution est un peu long. En tant que débutant j'ai fais au plus simple, mais n'y a t-il pas une autre méthode plus simple pour faire ceci ?
Voici le bout de code qui fait ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 cat "$TMP" | while read LIGNE do NOB=`echo "$LIGNE" | grep -o "^.*)" | sed "s/)//g"` if [[ "$NOB" =~ ^[1-9][0-9]?[0-9]?$ ]] && [ "$NOB" -gt "$NUME" ] then NOMB=$(($NOB+1)) echo "$LIGNE" | sed "s/$NOB)/$NOMB)/g" >> "$TOS" else echo "$LIGNE" >> "$TOS" fi done
Partager