[Bash] Récupérer une ligne particulière

Résolu/Fermé
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 10 mars 2005 à 02:39
_vince Messages postés 37 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 14 mai 2008 - 5 juil. 2007 à 17:10
Bonsoir,

Dans un repertoire, je fait une évaluation de la taile de tous les fichiers et j'aimerais bien ensuite isoler chaque fichier avec ses propres données...

Rien ne vaut un bon vieux shéma, donc par exemple dans mon /bin je fais un "du" pour chaque fichier:
$ du -ah
620K    ./bash
0       ./rbash
0       ./sh
20K     ./cat
32K     ./chgrp
32K     ./chmod
36K     ./chown

A partir de ce rapport j'aimerais bien isoler chaque ligne pour les placer dans un tableau.
Sans compter que je passe par des filtres avec grep....

Par exemple fichier[0]=620K ./bash
fichier[1]=0 ./rbash
etc...

C'est bizzare, j'ai décortiqué le man grep et j'ai rien trouvé, et j'ai rien vu non plus dans les autres commandes sur les chaines.
Il ya bien "cut " mais pour ça il faut savoir à l'avance ce qu'on a dans le dossier, et le mien risque de changer souvent....

Vous auriez une idée?

Merci d'avance....
A voir également:

3 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
10 mars 2005 à 17:36
Aaah, merci ça y est j'ai trouvé du coup. (Avec la doc de awk sur Léa)

Pour isoler une ligne particulière, exemple la ligne 17:
du -ah | awk '{print FNR ":"$0}' | grep -E ^17


J'avais pas du tout pensé à ça. En plus c'était faisable sans awk:
du -ah | grep -n * | grep -E ^17


Bon eh bien merci Jipicy :-)
Je vais voir du côté des tableaux maintenant...
4
_vince Messages postés 37 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 14 mai 2008
5 juil. 2007 à 17:10
Awk est plus utile comme ceci:

du -ah | awk 'NR == 17 {print;}'

NR etant le numero de ligne
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
10 mars 2005 à 09:21
Salut,

Il faut que tu regardes du côté des filtres "awk" et "sed" et plus particulièrement la fonctionnalité de "awk" à créer des tableaux.
http://www.shellunix.com/awk.html
http://www.shellunix.com/sed.html
0
j'ai tésté la premiére ligne avec awk ca marche...

par contre la deuxieme sans awk elle ne retourne que du vide .
0