Come modificare il formato numero (separatore decimale diverso) da XXXXXX.XXX
a XXXXXX,XXX
utilizzando sed
o awk
?Come modificare il separatore decimale con awk/sed?
risposta
Si potrebbe fare questo:
echo "XXX.XX" | sed s/\./,/g
Penso
s/\./,/g
dovrebbe servire che u vuole ... a meno che u desidera qualcosa di più speciale ...
Dal momento che la domanda è anche taggato awk
:
awk 'gsub(/\./,",")||1'
se avete bash/ksh etc
var=XXX.XXX
echo ${var/./,}
Bello, qui ce n'è uno più ingombrante che funziona in tutte le shell POSIX: 'var = XXX.XXX; echo $ {var%. *}, $ {var ## *.} ' – schot
Non sarebbe questo essere più precisi, come i whas OP parlando di numeri .. per assicurarsi che sia un numero che porta prima del punto. Il documento potrebbe contenere altri punti che l'OP non vuole sostituire.
sed '/[0-9]\./s/\./,/g'
Quanto rigoroso vuoi essere? È possibile modificare tutti i caratteri .
, come altri hanno suggerito, ma ciò consentirà molti falsi positivi se si dispone di più di un semplice numero. Un po 'più severo sarebbe quella di richiedere che ci sono cifre su entrambi i lati del punto:
$ echo 123.324 2314.234 adfdasf.324 1234123.daf 255.255.255.0 adsf.asdf a1.1a |
> sed 's/\([[:digit:]]\)\.\([[:digit:]]\)/\1,\2/g'
123,324 2314,234 adfdasf.324 1234123.daf 255,255,255,0 adsf.asdf a1,1a
che non consente modifiche in un paio di casi strani, vale a dire 255.255.255.0
e a1.1a
, ma gestisce "normali" i numeri in modo pulito.
Se si desidera sostituire il separatore decimale per scopi cosmetici
Nella maggior parte dei casi tr
è probabilmente il modo più semplice per sostituire i caratteri:
$ echo "0.3"|tr '.' ','
0,3
Naturalmente se avete a che fare con i numeri di miscelazione di ingresso e stringhe , avrai bisogno di un approccio più robusto, come quello proposto da Michael J. Barber o anche di più.
Se si desidera sostituire il separatore decimale per scopi di calcolo
Per impostazione predefinita gawk
(GNU awk
, vale a direla awk
della maggior parte delle distribuzioni GNU/Linux) utilizza il punto come separatore decimale:
$ echo $LC_NUMERIC
fr_FR.UTF-8
$ echo "0.1 0.2"|awk '{print $1+$2}'
0.3
$ echo "0,1 0,2"|awk '{print $1+$2}'
0
Tuttavia è possibile forzarlo ad utilizzare il separatore decimale del locale corrente utilizzando l'opzione --use-lc-numeric
:
$ echo $LC_NUMERIC
fr_FR.UTF-8
$ echo "0.1 0.2"|awk --use-lc-numeric '{print $1+$2}'
0
$ echo "0,1 0,2"|awk --use-lc-numeric '{print $1+$2}'
0,3
Se il formato di input è diverso dal locale corrente, puoi naturalmente ridefinire LC_NUMERIC temporaneamente:
$ echo $LC_NUMERIC
fr_FR.UTF-8
$ echo "0.1 0.2"|LC_NUMERIC=en_US.UTF-8 awk --use-lc-numeric '{print $1+$2}'
0
$ echo "0,1 0,2"|LC_NUMERIC=fr_FR.UTF-8 awk --use-lc-numeric '{print $1+$2}'
0,3
- 1. separatore decimale in NumberFormat
- 2. Tastiera numerica con separatore decimale
- 3. NSNumberFormatter con separatore decimale virgola
- 4. Angularjs decimale virgola come separatore
- 5. C# separatore decimale?
- 6. Excel negli appunti con separatore decimale macro
- 7. Cambia il separatore decimale in MySQL
- 8. Come cambio il separatore decimale nel comando printf in bash?
- 9. Come posso impostare il separatore decimale come una virgola?
- 10. Il numero con separatore decimale viene erroneamente convertito in Double
- 11. Accetta virgola e punto come separatore decimale
- 12. Qt - separatore decimale personalizzato e separatore di migliaia
- 13. numeri analisi con una virgola come separatore decimale in JavaScript
- 14. Mostra virgola anziché il punto come separatore decimale
- 15. Conversione doppio di stringa con N decimali, punto come separatore decimale, e nessun separatore delle migliaia
- 16. stringa di galleggiare conversione - separatore decimale
- 17. php come ottenere il separatore decimale/separatore corrente per una determinata località
- 18. Come modificare std :: stod (stringa da raddoppiare) per separatore decimale e numero di cifre
- 19. Valore di formato in XAML con un separatore decimale?
- 20. Qual è il simbolo del separatore decimale in JavaScript?
- 21. Crea moduli Django usa la virgola come separatore decimale
- 22. Come modificare il separatore di linea JAXB Marshaller?
- 23. Perché Django utilizza una virgola come separatore decimale
- 24. Come importare un file CSV con delimitatore come ";" e separatore decimale come "," in SAS?
- 25. Come accettare sia punto sia virgola come separatore decimale con WTForms?
- 26. Implode con virgolette doppie come separatore
- 27. Conversione/trasmissione di una nVarChar con separatore di virgola in decimale
- 28. con 3 cifre decimali finali, un separatore decimale di migliaia e virgole dopo quello
- 29. Cercando di impostare il separatore decimale per la lingua corrente, ottenendo "Istanza è di sola lettura"
- 30. Android GridView con separatore
non c'è bisogno di usare || 1, 'awk 'gsub (/\./, "")' – ghostdog74
@ ghostdog74 'gsub' restituisce il numero di sostituzioni, la versione salta linee che non contenere almeno un punto. Non so abbastanza dei dati di input dell'OP per omettere '|| 1'. – schot