Bash : sed sur deux lignes consécutive
MohEllayali
Messages postés
11
Statut
Membre
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Est ce possible d'appliquer la commande sed sur deux lignes consecutive ??
genre sed -e "s/motif_retour a la ligne_suite du motif/ motif de remplacement/g" fic1 >! fic2
Merci bien
Est ce possible d'appliquer la commande sed sur deux lignes consecutive ??
genre sed -e "s/motif_retour a la ligne_suite du motif/ motif de remplacement/g" fic1 >! fic2
Merci bien
Configuration: Windows Vista Internet Explorer 7.0
7 réponses
-
Ben a priori oui, vu que \n désigne un retour à la ligne (\r\n si c'est un fichier windowsien). Évidemment dans ton expression sed il faudra sûrement écrire \\n et \\r pour que ça fonctionne.
Bonne chance -
Salut mamiemando,
T'avais raison, c'est possible !
j'ai cependant un ptit probleme
j'execute cette commande
sed '/subckt/{N;s/\(^subckt $3.*\)\n+/\1 /g}' fic1 > ! fic2
et cela dans le but d'obtenir
au depart:
subckt SDFFSLRLD2 CLOCK DATA Q QB RL SL TE TI Q1B Q1
+ N_Q2_M13_s N_Q2B_M14_d
resultat souhaité:
subckt SDFFSLRLD2 CLOCK DATA Q QB RL SL TE TI Q1B Q1 N_Q2_M13_s N_Q2B_M14_d
quand j'execute
sed '/subckt/{N;s/\(^subckt SDFFSLRLD2.*\)\n+/\1 /g}' fic1 > ! fic2 ca marche
mais quand je fais
sed '/subckt/{N;s/\(^subckt $3.*\)\n+/\1 /g}' fic1 > ! fic2
ca ne marche plus
car en réaliité le texte SDFFSLRLD2 je le recois en parametre d'un script
donc ma question , comment utiliser des variables a l'interieur des accolades {} ??
Merci d'avance -
-
Salut,
Merci, c'est ce que je cherchais , je vais eplucher ca
Merci bcp -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
J'ai lu ton lien mais ca ne réponds pas au cas des accolades.
c'est poas grave , je vais chercher sur le net -
Il faut sans doute échapper les accolades \{ \}.
-
Bizarre que ça ne marche pas pour toi ;-\
[tmpfs]$ cat fic1 subckt SDFFSLRLD2 CLOCK DATA Q QB RL SL TE TI Q1B Q1 + N_Q2_M13_s N_Q2B_M14_d [tmpfs]$ sed '/subckt/{N;s/\(^subckt SDFFSLRLD2.*\)\n+/\1 /g}' fic1 subckt SDFFSLRLD2 CLOCK DATA Q QB RL SL TE TI Q1B Q1 N_Q2_M13_s N_Q2B_M14_d [tmpfs]$ set SDFFSLRLD2 [tmpfs]$ echo $1 SDFFSLRLD2 [tmpfs]$ sed "/subckt/{N;s/\(^subckt $1.*\)\n+/\1 /g}" fic1 subckt SDFFSLRLD2 CLOCK DATA Q QB RL SL TE TI Q1B Q1 N_Q2_M13_s N_Q2B_M14_d [tmpfs]$
mamiemando => Non il ne faut pas échapper les accolades, dans ce cas là elles font parties intégrantes de la syntaxe de sed, elles servent à regrouper des commandes qui ne s'appliquent qu'au motif les précédent.