Bonjour,
j’ai un fichier qui contient:
[org/gnome/login-screen]
banner-message-enable=true
banner-message-text='du texte ici'
Je veux remplacer la partie
banner-message-text='du texte ici'
par
banner-message-text='This system is for the use of authorized users only.\n\nAll connections are monitored and recorded.\nAnyone using this system expressly consents to such monitoring\nand is advised that if such monitoring reveals possible\nevidence of criminal activity, system personnel may provide the\nevidence from such monitoring to law enforcement officials.\n\n!!! Disconnect IMMEDIATELY if you are not an authorized user. !!! \n\nAll requests can be sent to admin@enedwaith.org'
J’ai essayé avec sed
mais sans succès.
J’ai d’abord créé une variable
message="This system is for the use of authorized users only.\n\nAll connections are monitored and recorded.\nAnyone using this system expressly consents to such monitoring\nand is advised that if such monitoring reveals possible\nevidence of criminal activity, system personnel may provide the\nevidence from such monitoring to law enforcement officials.\n\n!!! Disconnect IMMEDIATELY if you are not an authorized user. !!! \n\nAll requests can be sent to admin@enedwaith.org"
si je veux écrire directement dans un fichier, ça marche très bien avec printf
.
Mais si je veux faire un remplacement je n’y arrive pas.
Il semble que sed
ne soit pas le bon outil, et je ne maitrise pas awk
.
Avec sed je faisais:
sed -E 's,(banner-message-text=).*,\1'"$message"',g' fichier.txt
ou
sed -E 's,(banner-message-text=).*,\1$message,g' fichier.txt
Mais systématiquement il interprète les \n
dans le texte et cela conduit à un message d’erreur du type
sed: -e expression n°1, caractère 82: commande « s » inachevée