Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/06/2022, à 03:23

PowaBanga

[Résolu] sed et retours à la ligne

Salut à tous,
J'ai un ficher xml (des centaines) dont j'aimerais pouvoir modifier le contenu en masse

<command>
echo patate
echo Broncoli
<\command>

Il y a du texte donc, avant et après la section. Donc je dois pouvoir changer tout le contenu de la section command par un autre,

<command>
find -name *.pkg.tar.* -exec chmod 775 {} \; ;
find -name *.pkg.tar.* -exec mv -f {}  \; ;
git clean -df
<\command>

j'ai donc créé cette fonction : (comme ça je peux aussi m'en servir pour créer un nouveau xml)

theCommands()
{
echo "
find -name *.pkg.tar.* -exec chmod 775 {} \; ;
find -name *.pkg.tar.* -exec mv -f {}  \; ;
git clean -df
"
}

Je souhaite donc passer ma commande dans un sed, en la modifiant au préalable avec un autre sed:
le premier

theCommands | sed ':a;N;$!ba;s/\n/\\n/g;s/\\/\\\\/g;s/\*/\\*/g;s/\./\\./g'                                                                                                                                       
\\nfind -name \*\.pkg\.tar\.\* -exec chmod 775 {} \\; ;\\nfind -name \*\.pkg\.tar\.\* -exec mv -f {}  \\; ;\\ngit clean -df\\n

les deux

sed -i ':a;N;$!ba;s/<command>.*<\/command>/<command>$(theCommands | sed ':a;N;$!ba;s/\n/\\n/g;s/\\/\\\\/g;s/\*/\\*/g;s/\./\\./g')</command>/g'

Mais le souci, c'est que lorsque du premier sed, il me remplace tous les retours à la ligne par '\\n' au lieu de '\n'

du coup ça peut pas marcher !

Voilà, j'en appelle encore une fois aux férus de ce forum dans l'espoir divine de trouver un peu de lumière smile

[edit]
ha c'est bon, j'ai trouvé, je double les slash juste après avoir remplacé mes retours à la ligne XD

theCommands | sed ':a;N;$!ba;s/\\/\\\\/g;s/\*/\\*/g;s/\./\\./g;s/\n/\\n/g' 

le problème se règle donc en mettant mon remplacement de retour à la ligne à la fin

Dernière modification par PowaBanga (Le 12/06/2022, à 11:12)

Hors ligne