Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraire numero de ligne spécifique

5 réponses
Avatar
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

5 réponses

Avatar
totof2000
On 5 mai, 18:54, doucedouce wrote:
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.
Avatar
sputnick
totof2000 wrote:
On 5 mai, 18:54, doucedouce wrote:
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
Avatar
Olivier Miakinen
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
Avatar
Benoit Izac
Bonjour,

le 05/05/2009 à 18:54, doucedouce a écrit
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
Avatar
Cyrille Lefevre
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.