Remplacement valeur dans un fichier
Résolu
yann747
Messages postés
127
Date d'inscription
Statut
Membre
Dernière intervention
-
yann747 Messages postés 127 Date d'inscription Statut Membre Dernière intervention -
yann747 Messages postés 127 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je possède un fichier texte de ce format :
je voudrais enlever 300 au premier nombre (uniquement) , si il est supérieur à 100
la ligne 1 deviendrait :
-109.000 -60.500 1.57 229.27 0.0992 6.61 128.24,
la ligne 2 resterait inchangée etc ...
j'ai fait des essais avec :
ainsi que la commande cut, mais je n'y suis pas arrivé, à cause notamment des comparaisons "float" / "string"
Merci d'avance de vos réponses.
je possède un fichier texte de ce format :
191.000 -60.500 1.57 229.27 0.0992 6.61 128.24
98.500 -60.500 1.62 343.83 0.0974 6.08 130.80
99.000 -60.500 1.67 939.22 0.0965 5.52 134.41
109.500 -60.500 1.73 134.25 0.0969 4.96 139.09
220.000 -60.500 1.79 229.25 0.0974 4.45 145.06
340.500 -60.500 1.85 724.59 0.0976 4.00 152.92
211.000 -60.500 1.91 920.46 0.0978 3.63 163.2
je voudrais enlever 300 au premier nombre (uniquement) , si il est supérieur à 100
la ligne 1 deviendrait :
-109.000 -60.500 1.57 229.27 0.0992 6.61 128.24,
la ligne 2 resterait inchangée etc ...
j'ai fait des essais avec :
awk '{print $1;}'
ainsi que la commande cut, mais je n'y suis pas arrivé, à cause notamment des comparaisons "float" / "string"
Merci d'avance de vos réponses.
A voir également:
- Remplacement valeur dans un fichier
- Fichier bin - Guide
- Remplacement coco - Accueil - Réseaux sociaux
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Coco.fr remplacement - Accueil - Réseaux sociaux
5 réponses
hello
$ awk 'BEGIN {OFS="\t"} $1 > 100 {$1-=300} {print}' fichier
-109 -60.500 1.57 229.27 0.0992 6.61 128.24
98.500 -60.500 1.62 343.83 0.0974 6.08 130.80
99.000 -60.500 1.67 939.22 0.0965 5.52 134.41
-190.5 -60.500 1.73 134.25 0.0969 4.96 139.09
-80 -60.500 1.79 229.25 0.0974 4.45 145.06
40.5 -60.500 1.85 724.59 0.0976 4.00 152.92
-89 -60.500 1.91 920.46 0.0978 3.63 163.2
comme ça ?
$ awk 'BEGIN {OFS=" "} $1 > 100 {$1=sprintf("%-8.3f", $1-300)} {print}' fichier
-109.000 -60.500 1.57 229.27 0.0992 6.61 128.24
98.500 -60.500 1.62 343.83 0.0974 6.08 130.80
99.000 -60.500 1.67 939.22 0.0965 5.52 134.41
-190.500 -60.500 1.73 134.25 0.0969 4.96 139.09
-80.000 -60.500 1.79 229.25 0.0974 4.45 145.06
40.500 -60.500 1.85 724.59 0.0976 4.00 152.92
-89.000 -60.500 1.91 920.46 0.0978 3.63 163.2
Juste un petit détail supplémentaire ...
Est-il possible de garder la même mise en forme ?
c'est à dire 3 décimales forcées, et les 4 espaces entre chaque colonne
Par exemple sur la ligne 1 :
Merci d'avance
Est-il possible de garder la même mise en forme ?
c'est à dire 3 décimales forcées, et les 4 espaces entre chaque colonne
Par exemple sur la ligne 1 :
-109.000 -60.500 1.57 229.27 0.0992 6.61 128.24au lieu de :
-109 -60.500 1.57 229.27 0.0992 6.61 128.24
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question