Awk, Interpolation
Résolu
yann747
Messages postés
128
Statut
Membre
-
yann747 Messages postés 128 Statut Membre -
yann747 Messages postés 128 Statut Membre -
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
128
Statut
Membre
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.