Resultat commande recuperer un champ
Résolu/Fermé
lemon
-
8 mars 2012 à 20:31
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 9 mars 2012 à 14:19
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 9 mars 2012 à 14:19
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.
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.
A voir également:
- Resultat commande recuperer un champ
- Invite de commande - Guide
- Recuperer message whatsapp supprimé - Guide
- Commande terminal mac - Guide
- Comment récupérer un compte facebook piraté - Guide
- Recuperer video youtube - Guide
3 réponses
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
8 mars 2012 à 21:43
8 mars 2012 à 21:43
Salut,
Tu peut utiliser la commande grep avec des expressions régulières, pour ton exemple :
Bon courage.
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.
Utilisateur anonyme
8 mars 2012 à 22:04
8 mars 2012 à 22:04
non, tu utilises
stat --printf '+%s\n' fichier
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
8 mars 2012 à 22:30
8 mars 2012 à 22:30
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 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,...).
Comment je pourrais faire pour recuperer seulement la première ligne par exemple ? (ou bien la deuxième,...).
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
8 mars 2012 à 22:44
8 mars 2012 à 22:44
Rajoute un grep avec l'option -n pour numéroter les lignes, une expression rationnelle de plus pour n'afficher que celle que tu veux et un cut pour finalement enlever le numéro de ligne.
exemple : taille en octet du 3e fichier du répertoire courant :
exemple : taille en octet du 3e fichier du répertoire courant :
ls -l ./ | grep -o "[0-9]* oct\." | grep ".*" -n | grep ^3: | cut -d : -f 2
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
9 mars 2012 à 08:23
9 mars 2012 à 08:23
@qqchquicommenceparQ : Mais ça marche ;-) Si tu sait utiliser awk et que tu es capable de l'expliquer, n'hésite pas.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
Modifié par zipe31 le 9/03/2012 à 09:00
Modifié par zipe31 le 9/03/2012 à 09:00
Salut,
Tout simplement :
Ou plus précisément :
Tout simplement :
ls -l | awk '{ print $5 }'
Ou plus précisément :
ls -l | awk 'NR==2 { print $5 }'Pour n'afficher que la ligne 2.
dubcek
Messages postés
18784
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 avril 2025
5 630
9 mars 2012 à 09:03
9 mars 2012 à 09:03
hello
exemple : taille en octet du 3e fichier du répertoire courant :
exemple : taille en octet du 3e fichier du répertoire courant :
$ ls -l | awk '$5 && ++n==3 {print $5}'