J'utilise ma commande regex est la suivante: p> Ce qui semble trouver les chaînes correctement. Je voudrais remplacer la chaîne grep code> sur TextWrangler pour trouver des chaînes de ce type:
4 600.00 code> avec
4600.00 code> car je souhaite enregistrer les données dans un fichier
.csv code>. Comment puis-je supprimer la virgule de chaque numéro que je trouve? P> p>
3 Réponses :
Awk Onliner:
kent$ awk --version|head -1 GNU Awk 3.1.6 kent$ echo "foo,bar,blah,46,000.00,some,more"|awk --re-interval '{x=gensub(/([0-9]{1,3}),([0-9]{3}\.[0-9]{2})/,"\\1\\2","g");print x}' foo,bar,blah,46000.00,some,more
La vraie question ici était pour TextWrangler, pas pour la ligne de commande
Un moyen d'utiliser Vous pouvez ajouter le drapeau sed code>:
-i code> pour écrire les modifications directement sur le fichier. < / p> p>
Recherche: Remplacer: fonctionne dans TextWrangler. P> (\ d {1,3}), (\ d {1,3}) \. (\ d {1,2}) code> p> p>
\ 1 \ 2. \ 3 code> p>
Je suppose que votre ligne contient non seulement ce nombre, mais quelque chose comme «Foo, Bar, Blah, 4 600 000,00, quelques-uns, plus« Cependant, que si la ligne est «FOO, Bar, BLAH, 999 600 000,00, ...» Comment pouvez-vous dire 999 et 600000,00 sont deux colonnes? Y a-t-il une autre règle dans votre fichier d'entrée?
Les chiffres restent en dessous de 100 000, il suffit de trouver
, 000,00 code>. Je ne suis pas clair ce que le code de remplacement est cependant; J'ai essayé
\ d \ d {3}. \ D {2} code>.