Je souhaite effectuer un calcul simple sur chaque nombre dans une colonne de données délimitées par des espaces en utilisant des utilitaires Bash tels que cut et bc. Les données peuvent ressembler à quelque chose comme ce qui suit:Ajouter une nouvelle colonne de nombres à des données délimitées par des espaces en utilisant une autre colonne de nombres utilisant les utilitaires Bash
string 0.998663 string string string
string 0.998592 string string string
string 0.999096 string string string
Disons que je veux changer le spectacle les chiffres dans la deuxième colonne à trois chiffres significatifs. Je veux ajouter une autre colonne de ces nouveaux nombres à ces données directement après la deuxième colonne. Ainsi, le résultat peut ressembler à quelque chose comme ce qui suit:
string 0.998663 0.999 string string string
string 0.998592 0.999 string string string
string 0.999096 0.999 string string string
Je sais que je peux parcourir manuellement toutes ces données et construire de nouvelles colonnes de données, mais je pense qu'il ya un moyen plus efficace de le faire. Auriez-vous connaissance d'une manière intelligente de faire ceci?
+1 mais j'utiliserais 'FS' au lieu de" "c'est-à-dire' awk '$ 2 = $ 2 FS sprintf ("% .3f", $ 2)' fichier' – dogbane
Je savais que cela pouvait être optimisé. Belle solution! – fedorqui
C'est efficace et simple. Merci! – d3pd