Page 1 sur 1

[sed] remplacement caractères

Publié : jeu. 15 juil. 2021, 08:44
par albireo
bonjour, :copain:

je viens faire appel aux specialistes de sed ou des expressions régulières.

je voudrais dans un fichier *.csv remplacer les , se trouvant entre deux " " par des ;
typiquement les virgules de ce type de chaine : "ESO 520-PN3, AM 1726-234, H IV 11, PK 2+5.1"
exemples d'une ligne :
NGC 6369,Little Ghost Nebula,"ESO 520-PN3, AM 1726-234, H IV 11, PK 2+5.1",Planetary nebula,Ophiuchus,17h 29' 20,-23º 45' 33,11.40,37.8,10.13,22:26 hr,23:48 hr,01:10 hr,23º,,
donc je voudrais obtenir
NGC 6369,Little Ghost Nebula,"ESO 520-PN3; AM 1726-234; H IV 11; PK 2+5.1",Planetary nebula,Ophiuchus,17h 29' 20,-23º 45' 33,11.40,37.8,10.13,22:26 hr,23:48 hr,01:10 hr,23º,,
ou remplacer toutes les , par des ; sauf celles entre " "

Re: [sed] remplacement caractères

Publié : jeu. 15 juil. 2021, 10:35
par benjarobin
Bonjour,
https://unix.stackexchange.com/question ... mited-file
Tu dois juste très légèrement l'adapter

Re: [sed] remplacement caractères (resolu)

Publié : jeu. 15 juil. 2021, 10:43
par albireo
Merci je vais regarder çà :D
:bravo: :bravo:

Re: [sed] remplacement caractères

Publié : dim. 15 août 2021, 08:21
par Thomasb
Ce doit être un peu tard mais sans détecter les guillemets :

Code : Tout sélectionner

echo '"ESO 520-PN3, AM 1726-234, H IV 11, PK 2+5.1"' | sed 's/,/;/g' 
et en les détectant :

Code : Tout sélectionner

echo '"ESO 520-PN3, AM 1726-234, H IV 11, PK 2+5.1"' | sed 's/"\(.*\),\(.*\)"/\1;\2/g' 
ou avec l'option -E :

Code : Tout sélectionner

echo '"ESO 520-PN3, AM 1726-234, H IV 11, PK 2+5.1"' | sed -E 's/"(.*),(.*)"/\1;\2/g'  
Tu essaies de braquer le KGB ?

Re: [sed] remplacement caractères

Publié : dim. 15 août 2021, 08:31
par albireo
il n'est jamais trop tard pour apprendre :D
non je ne braque pas le KGB ce ne sont que des noms et coordonnées d'objets astronomiques
Merci

Re: [sed] remplacement caractères

Publié : dim. 15 août 2021, 08:33
par Thomasb
Mince, sinon je filais un coup de main... :P