Commande sed assez simple

Fermé
vercetty92 Messages postés 3 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 20 mai 2009 - 20 mai 2009 à 11:25
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 20 mai 2009 à 16:01
Bonjour,

je souhaite utilisé sed pour ajouter une ligne apres une ligne précise (avec un retour chariot)

comme je suis un débutant en sed j'ai peut etre une problème syntaxique....

voila ma ligne au point ou j'en suis :

sed -e "s/^other.*pam_unix_auth.so.1$/\nother   auth sufficient         pam_ldap.so.1 try_first_pass/g" /etc/pam.conf.bak > /etc/pam.conf


donc ce que je souhaite : après la ligne commencant par "other" et se finissant par "pam_unix_auth.so.1", je veux faire un retour chariot (\n) et écrire la ligne "other auth sufficient pam_ldap.so.1 try_first_pass"

mais pour l'instant cette ligne remplace carrément la 1er par la 2e, alors que je veux qu'elle la mette à la suite...

can you help me plz?

thx
A voir également:

5 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
20 mai 2009 à 11:44
Salut,
sed -e '/^other.*pam_unix_auth.so.1$/a\
other   auth sufficient         pam_ldap.so.1 try_first_pass
' /etc/pam.conf.bak > /etc/pam.conf
0
vercetty92 Messages postés 3 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 20 mai 2009
20 mai 2009 à 15:03
Merci de ta réponse jipicy, seulement ta commande ne fonctionne pas :

sed: command garbled: /^other.*pam_unix_auth.so.1$/a\other   auth sufficient         pam_ldap.so.1 try_first_pass


une autre idée?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
20 mai 2009 à 15:18
[tmpfs]$ cat toto
blablabla
bla bla bla
other.*pam_unix_auth.so.1
blablabla
bla bla bla

[tmpfs]$ sed -e '/^other.*pam_unix_auth.so.1$/a\
other   auth sufficient         pam_ldap.so.1 try_first_pass
' toto

blablabla
bla bla bla
other.*pam_unix_auth.so.1
other   auth sufficient         pam_ldap.so.1 try_first_pass
blablabla
bla bla bla

[tmpfs]$
0
vercetty92 Messages postés 3 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 20 mai 2009
20 mai 2009 à 15:48
ok merci en fait ca marche très bien sur mon ubuntu, mais il y a une chose que j'ai oublier de préciser : le sed sera utilisé sous solaris....et ca ne marche pas sous solaris, alors j'en viens a me demander si le sed de solairs n'est pas différent...(solaris10u6)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
20 mai 2009 à 16:01
Normalement ça devrait marcher aussi ;-\

Essaie sans le caractère "*" ( /^other.*pam_unix_auth.so.1$/) à remplacer par son équivalence réelle... on sait jamais.
0