Scripts bash

Fermé
azari12 - 12 janv. 2011 à 10:14
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 12 janv. 2011 à 10:40
Bonjour a tous,

j'aurai besoin d'un petit conseil


j'ai un fichier file.conf
ainsi que 3 autres fichiers nommés a.txt b.txt c.txt
dans un premier temps je souhaite repeter n fois une chaine de caracteres (chaine-A, chaine-B, chaine-C) a la fin du fichier, pour ca pas trop complique une
boucle for , echo >> et ca devrait etre bon.
maintenant pour chaque chaines je voudrais (je vais faire un dessin !)

$cat a.txt
X.a.X.a.X.a.X

$cat b.txt
X.b.X.b.X.b.X

---------------------
$cat file.conf
chaine-A X.a.X.a.X.a.X
chaine A X.a.X.a.X.a.X
n-fois chaine-A
chaine-B X.b.X.b.X.b.X
n fois chaine-B
chaine-C X.a.X.a.X.a.X
n fois chaine-C

bash awk? sed? ou perl , j'attend vos conseils 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
12 janv. 2011 à 10:40
Salut,

Une solution avec "sed" :

$ cat file.conf                                         
chaine-AX.a.X.a.X.a.X                                 
chaineAX.a.X.a.X.a.X                                  
chaine-BX.b.X.b.X.b.X                                 
chaine-CX.a.X.a.X.a.X                                  

$ cat a.txt                                           
X.a.X.a.X.a.X

$ cat b.txt
X.b.X.b.X.b.X

$ A=$(cat a.txt)

$ B=$(cat b.txt)

$ echo $A
X.a.X.a.X.a.X

$ echo $B
X.b.X.b.X.b.X

$ sed -i.bakA '/^chaine-B/i\
'"$A"'
' file.conf

$ sed -i.bakB '/^chaine-C/i\
'"$B"'
' file.conf

$ cat file.conf
chaine-A X.a.X.a.X.a.X
chaine A X.a.X.a.X.a.X
X.a.X.a.X.a.X
chaine-B X.b.X.b.X.b.X
X.b.X.b.X.b.X
chaine-C X.a.X.a.X.a.X

$

;-))
0