[Shell] variable + SED
Résolu/Fermé
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
-
1 juil. 2013 à 14:40
dubcek Messages postés 18764 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 février 2025 - 2 juil. 2013 à 10:16
dubcek Messages postés 18764 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 février 2025 - 2 juil. 2013 à 10:16
A voir également:
- Sed variable bash
- Bingo bash free - Télécharger - Divers Jeux
- Minimal bash-like line editing is supported ✓ - Forum Linux / Unix
- Bash addition ✓ - Forum Shell
- [Bash]Impossible de faire une simple addition - Forum Shell
2 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
Modifié par zipe31 le 1/07/2013 à 16:11
Modifié par zipe31 le 1/07/2013 à 16:11
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.
dubcek
Messages postés
18764
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 février 2025
5 624
1 juil. 2013 à 15:34
1 juil. 2013 à 15:34
hello
essayer
essayer
sed -i "1i\${entete}\n" ${Folder}/referentiels/liste.xml
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
39
1 juil. 2013 à 15:57
1 juil. 2013 à 15:57
Salut dubcek,
bel essai mais non ça ne marche pas, je retrouve en première ligne le nom de ma variable ${entete}
bel essai mais non ça ne marche pas, je retrouve en première ligne le nom de ma variable ${entete}
dubcek
Messages postés
18764
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 février 2025
5 624
1 juil. 2013 à 16:00
1 juil. 2013 à 16:00
avec guillemets, pas un double '
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
39
1 juil. 2013 à 16:10
1 juil. 2013 à 16:10
je viens d'essayer avec double quotes "
avc deux simple quote '' et avec une seule '
sa ne passe pas soit j'ai l'erreur du début (à savoir sed: can't read ....)
soit j'obtiens le nom de ma variables
:/
avc deux simple quote '' et avec une seule '
sa ne passe pas soit j'ai l'erreur du début (à savoir sed: can't read ....)
soit j'obtiens le nom de ma variables
:/
dubcek
Messages postés
18764
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 février 2025
5 624
Modifié par dubcek le 2/07/2013 à 08:53
Modifié par dubcek le 2/07/2013 à 08:53
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 $
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
2 juil. 2013 à 08:59
2 juil. 2013 à 08:59
Salut,
Là ça marche parce que ta variable est sur une seule ligne.
Fais la même chose avec plusieurs lignes et ça échouera ;-(
Là ça marche parce que ta variable est sur une seule ligne.
Fais la même chose avec plusieurs lignes et ça échouera ;-(
Modifié par yacleouf le 1/07/2013 à 16:53
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
1 juil. 2013 à 17:02
1 juil. 2013 à 17:12
merci encore !