[Shell] variable + SED
Résolu
yacleouf
Messages postés
461
Statut
Membre
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour le forum,
je me permets de poster une question qui je pense vous paraitra simple .. (du moins je l'espère ;-) )
je vous détaille ce que je fait :
1/ je récupère les 4 premières lignes d'un fichiers xml que je stock en variable
2/ je souhaite enregistrer cette variable (cette ligne) en tant que première ligne dans un autre fichier :
Or le soucis c'est que la première ligne de mon fichier "monFichierXML_*.xml" n'est pas bien digérée dans le deuxième sed ... :
ci dessous le contenu de la variable entete :
je me permets de poster une question qui je pense vous paraitra simple .. (du moins je l'espère ;-) )
je vous détaille ce que je fait :
1/ je récupère les 4 premières lignes d'un fichiers xml que je stock en variable
entete=$(sed -n -e '1,4p' monFichierXML_*.xml)
2/ je souhaite enregistrer cette variable (cette ligne) en tant que première ligne dans un autre fichier :
sed -i '1i\' ${entete} \n ' ${Folder}/referentiels/liste.xml
Or le soucis c'est que la première ligne de mon fichier "monFichierXML_*.xml" n'est pas bien digérée dans le deuxième sed ... :
sed: can't read <?xml: No such file or directory sed: can't read version="1.0": No such file or directory sed: can't read encoding="UTF-8"?>: No such file or directory sed: can't read <toor: No such file or directory sed: can't read xmlns="https://www.amazon.fr/": No such file or directory sed: can't read timestamp="2013-03-12T13:01:18.409+01:00">: No such file or directory sed: can't read n: No such file or directory sed: can't read ${Folder}/referentiels/referentiels.xml
ci dessous le contenu de la variable entete :
<?xml version="1.0" encoding="UTF-8"?> <toor xmlns="https://www.amazon.fr/" timestamp="2013-03-12T13:01:18.409+01:00">
A voir également:
- Sed variable bash
- Bingo bash - Télécharger - Divers Jeux
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Vba range avec variable ✓ - Forum VB / VBA
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Bash permission non accordée - Forum Shell
2 réponses
Salut,
Attention à l'imbrication des quotes simples/doubles dans la 2nd parties :-\
Sinon, la syntaxe d'insertion dans sed doit impérativement mettre un anti-slash à chaque fin de ligne en cas d'ajout, sauf pour la dernière.
En gros ta variable pour l'insertion doit ressembler à :
J'ai mis les retours à la ligne au pif...
Zen my nuggets ;-)
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
entete=$(sed -n -e '1,4p' monFichierXML_*.xml) new_entete=$(sed '$! s/$/\\/' <<<"${entete}") sed -i '1i\ '"${new_entete}"' \n ' ${Folder}/referentiels/liste.xml
Attention à l'imbrication des quotes simples/doubles dans la 2nd parties :-\
Sinon, la syntaxe d'insertion dans sed doit impérativement mettre un anti-slash à chaque fin de ligne en cas d'ajout, sauf pour la dernière.
En gros ta variable pour l'insertion doit ressembler à :
<?xml version="1.0" encoding="UTF-8"?> \ <toor xmlns="[http://www.a.fr]" \ timestamp="2013-03-12T13:01:18.409+01:00"\ >
J'ai mis les retours à la ligne au pif...
Zen my nuggets ;-)
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
hello
essayer
essayer
sed -i "1i\${entete}\n" ${Folder}/referentiels/liste.xml
pourtant je conserve bien les "
$ entete='<?xml version="1.0" encoding="UTF-8"?> <toor xmlns="http://www.a.fr" timestamp="2013-03-12T13:01:18.409+01:00">' $ date > a $ sed -i "1i${entete}" a $ cat a <?xml version="1.0" encoding="UTF-8"?> <toor xmlns="[http://www.a.fr]" timestamp="2013-03-12T13:01:18.409+01:00"> Tue Jul 2 08:49:51 CEST 2013 $
Une fois encore tu viens à ma rescousse !
ceci était la solution attendue :-)
Merci encore !
si je peux abuser, tu pourrais m'expliquer ce passage
Merci d'avance
merci encore !