Awk, Interpolation
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 dispose de fichiers texte sur lesquels je souhaiterais réaliser des opérations d'interpolation.
fichier "debut.txt" se présente comme ceci :
le fichier "fin.txt"
tableau représentant l'interpolation :
1 4 7 10
6 7 8 9
4 8 12 16
2 2.33 2.66 3
Le but serait donc d'obtenir 2 nouveaux fichiers "interpolation1.txt" et "interpolation2.txt"
contenant respectivement la 2ème et la 3ème colone du tableau ci-dessus.
interpolation1.txt :
interpolation2.txt :
J'ai fais quelques essais avec awk, sans succès jusqu'à présent,
merci d'avance pour vos reponses.
Je dispose de fichiers texte sur lesquels je souhaiterais réaliser des opérations d'interpolation.
fichier "debut.txt" se présente comme ceci :
1etc ...
6
4
2
le fichier "fin.txt"
10etc ...
9
16
3
tableau représentant l'interpolation :
1 4 7 10
6 7 8 9
4 8 12 16
2 2.33 2.66 3
Le but serait donc d'obtenir 2 nouveaux fichiers "interpolation1.txt" et "interpolation2.txt"
contenant respectivement la 2ème et la 3ème colone du tableau ci-dessus.
interpolation1.txt :
4etc ...
7
8
2.33
interpolation2.txt :
7etc ...
8
12
2.66
J'ai fais quelques essais avec awk, sans succès jusqu'à présent,
merci d'avance pour vos reponses.
2 réponses
$ awk 'BEGIN {OFMT="%.2f"} NR==FNR {t[FNR]=$1; next} {a=t[FNR]; i=($1-a)/3; print v=a+i > "interpolation1"; print v+i > "interpolation2"}' debut fin
$ more inter*
::::::::::::::
interpolation1
::::::::::::::
4
7
8
2.33
::::::::::::::
interpolation2
::::::::::::::
7
8
12
2.67
$
yann747
Messages postés
127
Date d'inscription
Statut
Membre
Dernière intervention
2
Impeccable, ça marche à merveille ! Merci pour le coup de main ;-)
hello
le tableau est-il créé à partir des fichiers debut.txt et fin.txt, si oui comment ?
ou faut-il juste extraire les colonnes 2 et 3 du tableau ?
le tableau est-il créé à partir des fichiers debut.txt et fin.txt, si oui comment ?
ou faut-il juste extraire les colonnes 2 et 3 du tableau ?
Bonjour,
désolé pour le manque clarté dans ma demande.
Les colonnes 2 et 3 doivent être créées (virtuellement ?) à partir debut.txt et fin.txt
Si on prend par exemple la première ligne de debut.txt et fin.txt
respectivement 1 et 10, pour ajouter deux nombres entre 1 et 10,
qui soient équidistants je fais
|10 -1| = 9
9/3 = 3
on a 3 d'écart entre chaque nombre.
Au final ça donne 1 -> 4 -> 7 -> 10
ainsi de suite pour chaque ligne
le tableau d'exemple n'a pas forcement besoin d'être créé "physiquement",
le but est de récupérer les colonnes 2 et 3 dans deux fichiers distincts.
désolé pour le manque clarté dans ma demande.
Les colonnes 2 et 3 doivent être créées (virtuellement ?) à partir debut.txt et fin.txt
Si on prend par exemple la première ligne de debut.txt et fin.txt
respectivement 1 et 10, pour ajouter deux nombres entre 1 et 10,
qui soient équidistants je fais
|10 -1| = 9
9/3 = 3
on a 3 d'écart entre chaque nombre.
Au final ça donne 1 -> 4 -> 7 -> 10
ainsi de suite pour chaque ligne
le tableau d'exemple n'a pas forcement besoin d'être créé "physiquement",
le but est de récupérer les colonnes 2 et 3 dans deux fichiers distincts.