extraire numero de ligne spécifique

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
totof2000
Le #19272591
On 5 mai, 18:54, doucedouce
Bonjour,
voila mon probleme je dispose d'un fichier contenant des colonnes (suppos ons
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 num ero de
la premiere ligne dans laquelle aparait le "a" et les mettre dans un fic hier
colonne ,c'est a dire pour l'exemple de toto, le résultat final sera co mme
suit:
tata:
3
4
6
7

voila j 'espere que c'est assez clair et merci



awk est ton ami.
man awk ....

Je vais pas faire tes devoirs à ta place.

Pour info il y a des variables qui permettent de te retourner le
numéro d'enregistrement d'une ligne et la position d'un champ dans une
colonne.
sputnick
Le #19280171
totof2000 wrote:
On 5 mai, 18:54, 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



awk est ton ami.
man awk ....

Je vais pas faire tes devoirs à ta place.

Pour info il y a des variables qui permettent de te retourner le
numéro d'enregistrement d'une ligne et la position d'un champ dans une
colonne.



awk '/^a/ {print "la lettre "a" est presente ligne " NR; exit}' FICHIER
Olivier Miakinen
Le #19286021
Le 05/05/2009 18:54, doucedouce a écrit :

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



awk '
BEGIN { champ = 1 }
$champ == "a" { print NR; champ++ }
' < toto
Benoit Izac
Le #19287161
Bonjour,

le 05/05/2009 à 18:54, doucedouce dans le message
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



Si j'ai bien compris :

3 -> numéro de ligne où « a » apparaît pour la première fois dans la
colonne 1
4 -> numéro de ligne où « a » apparaît pour la première fois dans la
colonne 2
6 -> numéro de ligne où « a » apparaît pour la première fois dans la
colonne 3
7 -> numéro de ligne où « a » apparaît pour la première fois dans la
colonne 4


D'où deux questions :

Doit-on vérifier que « a » est présent dans les colonnes précédentes ?
Est-ce que « a » apparaît toujours dans l'ordre (colonne 1 puis colonne
2, puis 3, etc.) ?

--
Benoit Izac
Cyrille Lefevre
Le #19289581
Olivier Miakinen a écrit :

awk '
BEGIN { champ = 1 }
$champ == "a" { print NR; champ++ }
' < toto




Bonjour,

félicitation, je ne comprenais pas pourquoi il manquait une ligne...
pour une fois, je suis bluffé ! :-)

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Publicité
Poster une réponse
Anonyme