Resultat commande recuperer un champ [Résolu/Fermé]

Signaler
-
Messages postés
35685
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
14 octobre 2020
-
Bonjour,
je voudrais savoir comment faire pour récuperer un champ du résultat d'une commande.
Par exemple si je tape "ls -l fichier" et que je veux seulement recuperer la taille en octet du fichier, comment pourrais-je faire ?
Merci d'avance.

3 réponses

Messages postés
2082
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
7 septembre 2020
233
Salut,
Tu peut utiliser la commande grep avec des expressions régulières, pour ton exemple :
ls -l fichier | grep -o "[0-9]* oct\." | grep -o "[0-9]*"


Bon courage.

non, tu utilises
stat --printf '+%s\n' fichier
Messages postés
2082
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
7 septembre 2020
233
Récupérer la taille du fichier n'était qu'un exemple, sa question est comment récuperer un champ du résultat d'une commande ?.
Merci pour la réponse, effectivement la taille d'un fichier n'était qu'un exemple, ma quesiton était générale ;-).
Utilisateur anonyme
«travailler sur des champs» suggère awk, plutôt que des pipes de grep.
je vais comparer les deux ;-).
Merci pour l'aide, ça marche ;-). Une dernière question, quand je lance la commande sur une ligne qui contient plusieurs champs numérique, la commande les affichent toutes, ligne par ligne.
Comment je pourrais faire pour recuperer seulement la première ligne par exemple ? (ou bien la deuxième,...).
Messages postés
2082
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
7 septembre 2020
233
Et ben je me coucherai moins bête !
Messages postés
18227
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 octobre 2020
5 032
@zipe31
ls -l | awk 'NR==2 { print $5 }'
ca traite le premier fichier à cause de la ligne total xxx, non ?
Messages postés
35685
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
14 octobre 2020
5 533
Yes ;-))

J'ai épluché le man de ls et je n'y ai vu aucune option susceptible d'empêcher cette ligne ;-\

Bon comme c'est à titre d'exemple, et pas uniquement pour la sortie de la commande ls, le tout c'est de retenir que "NR==2" affichera la seconde ligne ;-))
Messages postés
18227
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 octobre 2020
5 032
comme ça
$ cd /etc
$ ls -l | head -3
total 1176
drwxr-xr-x  5 root    root     4096 2010-04-29 14:20 ConsoleKit
drwxr-xr-x  5 root    root     4096 2011-05-28 09:19 NetworkManager
$ 
$ ls -ld * | head -3
drwxr-xr-x  5 root    root     4096 2010-04-29 14:20 ConsoleKit
drwxr-xr-x  5 root    root     4096 2011-05-28 09:19 NetworkManager
drwxr-xr-x 10 root    root     4096 2012-01-27 08:26 X11
$ 
Messages postés
35685
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
14 octobre 2020
5 533
Merci ;-))