Extraire numero de ligne spécifique
Résolu
doucedouce
-
doucedouce -
doucedouce -
Bonjour,voila mon probleme je dispose d'un fichier contenant des colonnes (supposons 4colonnes)
comme suit(pr simplifier la chose ,les chiffres sont donnés au hasard) je nomme toto ce fichier
toto:
1 2 3 4
5 6 7 8
a 9 10 56
a a 11 45
a a 67 89
a a a 45
a a a a
ce que je voudrais maintenant c'est connaitre pour chaque colonne le numero de la premiere ligne dans laquelle aparait le "a" et les mettre dans un fichier colonne ,c'est a dire pour l'exemple de toto, le résultat final sera comme suit:
tata:
3
4
6
7
voila j 'espere que c'est assez clair et merci
comme suit(pr simplifier la chose ,les chiffres sont donnés au hasard) je nomme toto ce fichier
toto:
1 2 3 4
5 6 7 8
a 9 10 56
a a 11 45
a a 67 89
a a a 45
a a a a
ce que je voudrais maintenant c'est connaitre pour chaque colonne le numero de la premiere ligne dans laquelle aparait le "a" et les mettre dans un fichier colonne ,c'est a dire pour l'exemple de toto, le résultat final sera comme suit:
tata:
3
4
6
7
voila j 'espere que c'est assez clair et merci
A voir également:
- Extraire numero de ligne spécifique
- Extraire une video youtube - Guide
- Partage de photos en ligne - Guide
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Extraire le son d'une vidéo - Guide
4 réponses
reBonsoir,
j'ai essayé avec cette commande mais ca n'a malheureusement pas donné le résultat attendu,
en fait je veux par exemple que le script fasse un traitement sur chaque colonne et qu'il me donne le numero de ligne ou la premiere valeur de "a" apparait , et qu'il fasse de meme pour chaque aute colonne ...
et pour le fichier colonne résultat : sa premiere valeur par exemple ca correspond a la ligne de la premiere valeur "a" DE LA PREMIERE COLONNE , et la deuxieme valeur c'est la ligne ou on a trouvé la premiere valeur "a" dans la deuxieme colonne et ainsi de suite....
merci d'avance
j'ai essayé avec cette commande mais ca n'a malheureusement pas donné le résultat attendu,
en fait je veux par exemple que le script fasse un traitement sur chaque colonne et qu'il me donne le numero de ligne ou la premiere valeur de "a" apparait , et qu'il fasse de meme pour chaque aute colonne ...
et pour le fichier colonne résultat : sa premiere valeur par exemple ca correspond a la ligne de la premiere valeur "a" DE LA PREMIERE COLONNE , et la deuxieme valeur c'est la ligne ou on a trouvé la premiere valeur "a" dans la deuxieme colonne et ainsi de suite....
merci d'avance
[tmpfs]$ cat toto 1 2 3 4 5 6 7 8 a 9 10 56 a a 11 45 a a 67 89 a a a 45 a a a a [tmpfs]$ sed -n '/a/=' toto 3 4 5 6 7 [tmpfs]$C'est pas bon ?
Bonjour,
en fait mon fichier toto est un peu plus compliqué que celui que je viens de donner, mon fichier contient dans sa premiere colonne des hauteurs (des niveaux verticaux) et les autres colonnes sont en fait des données de temperatures ,(il existe des valeurs de temperaturees et des "nan" ie des valeurs absentes)
mon probleme c'est 'avoir pour chaque colonne la hauteur ou se trouve le premier "nan" ( ceci en suposant que par exemple je peux avoir que la hauteur du "nan" de la 3eme colonne soit avant la hauteur du "nan" de la 1ere colonne) et avec la commande que vous m'avez conseillé ,ca ne donne pas le résultat voulu. voila
merci infiniment
en fait mon fichier toto est un peu plus compliqué que celui que je viens de donner, mon fichier contient dans sa premiere colonne des hauteurs (des niveaux verticaux) et les autres colonnes sont en fait des données de temperatures ,(il existe des valeurs de temperaturees et des "nan" ie des valeurs absentes)
mon probleme c'est 'avoir pour chaque colonne la hauteur ou se trouve le premier "nan" ( ceci en suposant que par exemple je peux avoir que la hauteur du "nan" de la 3eme colonne soit avant la hauteur du "nan" de la 1ere colonne) et avec la commande que vous m'avez conseillé ,ca ne donne pas le résultat voulu. voila
merci infiniment
voila un exemple du fichier cible (un peu court quand meme) nommé par exemple toto:
0.5 22 27 20 19
1 21 26 nan 18
3 20 25 nan 16
4 nan 24 nan nan
50 nan 23 nan nan
100 nan 22 nan nan
200 nan nan nan nan
300 nan nan nan nan
800 nan nan nan nan
et le resultat voulu c'est:
4 # ie (le premier nan de la premiere colonne se trouve a la hauteur 4)
200 # ie (le premier nan le la deuxieme colonne se trouve a une hauteur de 200)
1
4
voila merci pour votre patience :)
0.5 22 27 20 19
1 21 26 nan 18
3 20 25 nan 16
4 nan 24 nan nan
50 nan 23 nan nan
100 nan 22 nan nan
200 nan nan nan nan
300 nan nan nan nan
800 nan nan nan nan
et le resultat voulu c'est:
4 # ie (le premier nan de la premiere colonne se trouve a la hauteur 4)
200 # ie (le premier nan le la deuxieme colonne se trouve a une hauteur de 200)
1
4
voila merci pour votre patience :)
Un truc du genre...
jp@MDK:~/tmpfs ssh$ cat plop 0.5 22 27 20 19 1 21 26 nan 18 3 20 25 nan 16 4 nan 24 nan nan 50 nan 23 nan nan 100 nan 22 nan nan 200 nan nan nan nan 300 nan nan nan nan 800 nan nan nan nan jp@MDK:~/tmpfs ssh$ cat foo.sh #! /bin/sh #set -xv i=1 while [ "$i" -lt 6 ] do awk '$'"$i"' ~ /nan/ {print $1;exit }' plop i=$((i + 1)) done jp@MDK:~/tmpfs ssh$ ./foo.sh 4 200 1 4 jp@MDK:~/tmpfs ssh$;-))