[Script shell]Ecrire dans un fichier [Résolu/Fermé]

Signaler
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
-
Messages postés
35699
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
24 octobre 2020
-
Bonjour,

Voilà je cherche à écrire le contenu d'un fichier dans un autre fichier, mais à un endroit bien précis.

Exemple :

Fichier A:
blablabla
blabla
blablablabla
####
blablabla


Fichier B:
coucou
salut


Je veux en résultat que mon fichier A contienne :
blablabla
blabla
blablablabla
####
coucou
salut
blablabla


Tout simplement intégrer des lignes de code à l'intérieur d'un fichier de code :)

3 réponses

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 199
Salut.
Je ne sais pas comment faire exactement, mais je peut te donner une méthode :
avec grep tu repères la ligne (cherche la bonne option) puis avec head et tail tu concatène le tout.
a=$(grep "####" [bonne option] fichier_A)
head -n $a fichier_A>resu
cat fichier_B>>resu
(( a++ ))
tail -n +$a fichier_A>>resu
Messages postés
35699
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
24 octobre 2020
5 564
Salut,

$ cat A
blablabla
blabla
blablablabla
####
blablabla

$ cat B
coucou
salut

$ sed -i.bak '/####/r B' A

$ cat A
blablabla
blabla
blablablabla
####
coucou
salut
blablabla

$

;-))
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 199
manque plus qu'une solution awk, et nous aurons la totale :-D
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
141
OK, merci pour ça, c'est un début, mais avec les explications, ça serait super.
Car ce que je dois faire va plus loin.

De plus, voilà mon test :

sed -i.bak '22:cd_vm/r 23:cd_coucou' /usr/share/config.txt


Le résultat :

sed: -e expression n=°1, caractère 3: : n'a besoin d'aucune adresse


En bref il n'aime pas les caractères spéciaux.
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
141
done.
Messages postés
35699
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
24 octobre 2020
5 564
La réponse est partie...

En gros pour ceux qui suivent : je n'ai eu aucun problème que ce soit avec "sed" ou "ed". Les fichiers ont bien été modifiés comme convenu. Le 2nd fichier a bien été ajouter 3 lignes avant la fin du 1er fichier.

Commande sed :
sed -i.bak "$(($(wc -l < Map.pm)-3)) r Modif_Map.pm.txt" Map.pm

Commande ed :
ed -s Map.pm <<< $'$-3 r Modif_Map.pm.txt\nw'
Messages postés
35699
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
24 octobre 2020
5 564
Tu ne m'as toujours pas dit sur quel système tu bosses ? GNU/Linux ou Unix ?
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
141
Je suis sur Debian.
Tu avais raison, un problème de droits...
Messages postés
35699
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
24 octobre 2020
5 564
;-))

Bon reste plus qu'à attendre la venu du ballon d'or*


*Messie ;-))