Bash : sed sur deux lignes consécutive
Fermé
MohEllayali
Messages postés
10
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
4 avril 2010
-
29 mai 2009 à 00:45
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 29 mai 2009 à 19:59
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 29 mai 2009 à 19:59
A voir également:
- Bash : sed sur deux lignes consécutive
- Bingo bash free - Télécharger - Divers Jeux
- Retour à la ligne bash ✓ - Forum Shell
- Bash addition ✓ - Forum Shell
- [Bash]Impossible de faire une simple addition - Forum Shell
- Bash écrire dans un fichier - Forum Shell
7 réponses
mamiemando
Messages postés
33459
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2025
7 813
29 mai 2009 à 01:35
29 mai 2009 à 01:35
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
MohEllayali
Messages postés
10
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
4 avril 2010
29 mai 2009 à 11:45
29 mai 2009 à 11:45
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
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
29 mai 2009 à 11:49
29 mai 2009 à 11:49
Salut,
Voir dans la FAQ : SED - Le remplacement de variables
Voir dans la FAQ : SED - Le remplacement de variables
MohEllayali
Messages postés
10
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
4 avril 2010
29 mai 2009 à 11:55
29 mai 2009 à 11:55
Salut,
Merci, c'est ce que je cherchais , je vais eplucher ca
Merci bcp
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
MohEllayali
Messages postés
10
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
4 avril 2010
29 mai 2009 à 12:16
29 mai 2009 à 12:16
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
mamiemando
Messages postés
33459
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2025
7 813
29 mai 2009 à 12:30
29 mai 2009 à 12:30
Il faut sans doute échapper les accolades \{ \}.
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
29 mai 2009 à 19:59
29 mai 2009 à 19:59
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.