Remplacer " par \" avec awk
Résolu/Fermé
A voir également:
- Remplacer " par \" avec awk
- Remplacer disque dur par ssd - Guide
- Remplacer par word - Guide
- Quel site pour remplacer coco - Accueil - Réseaux sociaux
- Remplacer tete sur photo - Guide
- Remplacer windows 7 par windows 10 - Accueil - Mise à jour
5 réponses
Je me suis trompée dans la commande:
desc="toto\"titi\"tata\""
gsub(/\"/, "\\\"", desc)
print "desc: "desc
Et j'obtiens le résultat suivant: desc: toto"titi"tata"
Je ne comprends pas pourquoi le backslash(\) n'est pas ajouté
desc="toto\"titi\"tata\""
gsub(/\"/, "\\\"", desc)
print "desc: "desc
Et j'obtiens le résultat suivant: desc: toto"titi"tata"
Je ne comprends pas pourquoi le backslash(\) n'est pas ajouté
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
19 févr. 2009 à 10:06
19 févr. 2009 à 10:06
Salut,
Y'a comme un os dans ton énoncé, non ?
Ta variable est définie tel que : desc="toto\"titi\"tata\""
ce qui donne donc toto\"titi\"tata\"
et tu dis attendre :
Alors que j'attends le résultat suivant: toto\"titi\"tata\"
Cherchez l'erreur ;-\
:-))
Y'a comme un os dans ton énoncé, non ?
Ta variable est définie tel que : desc="toto\"titi\"tata\""
ce qui donne donc toto\"titi\"tata\"
et tu dis attendre :
Alors que j'attends le résultat suivant: toto\"titi\"tata\"
Cherchez l'erreur ;-\
:-))
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
19 févr. 2009 à 10:08
19 févr. 2009 à 10:08
C'est ça que tu veux :
jp@MDK:~/tmpfs ssh$ echo $desc toto"titi"tata" jp@MDK:~/tmpfs ssh$ echo $desc | sed 's/\"/\\\\"/g' toto\\"titi\\"tata\\" jp@MDK:~/tmpfs ssh$;-)
Merci jipicy,
j'utilise la commande sed avant d'utiliser l'awk, et du coup tout va bien.
Pour info, voici le bout de code:
<commande> | \
sed 's/\"/\\\"/g' |\
awk -F "|" '{
if(NF == 5){
desc=$NF
print <commande>"\""desc"\";"
}
}' >> $OutputFile
NB: je n'ai pas mis tout le code, mais le principe y est!
j'utilise la commande sed avant d'utiliser l'awk, et du coup tout va bien.
Pour info, voici le bout de code:
<commande> | \
sed 's/\"/\\\"/g' |\
awk -F "|" '{
if(NF == 5){
desc=$NF
print <commande>"\""desc"\";"
}
}' >> $OutputFile
NB: je n'ai pas mis tout le code, mais le principe y est!
Bonjour
Merci pour ta réponse
Je me suis mal exprimée:
la chaine de départ est: desc: toto"titi"tata"
d'ailleurs si je fais un print de desc (desc="toto\"titi\"tata\""), j'ai: toto"titi"tata"
Donc la chaine de départ est: toto"titi"tata"
Et je souhaiterai obtenir: toto\"titi\"tata\"
Merci pour ta réponse
Je me suis mal exprimée:
la chaine de départ est: desc: toto"titi"tata"
d'ailleurs si je fais un print de desc (desc="toto\"titi\"tata\""), j'ai: toto"titi"tata"
Donc la chaine de départ est: toto"titi"tata"
Et je souhaiterai obtenir: toto\"titi\"tata\"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question