Bash : sed sur deux lignes consécutive
MohEllayali
Messages postés
11
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
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
A voir également:
- Bash : sed sur deux lignes consécutive
- Bingo bash free - Télécharger - Divers Jeux
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
- Bash permission non accordée - Forum Shell
- Bash list ✓ - Forum Shell
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
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
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
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
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
Bizarre que ça ne marche pas pour toi ;-\
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.
[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.