Commande shell
Résolu
lamou23
Messages postés
218
Statut
Membre
-
lamou23 Messages postés 218 Statut Membre -
lamou23 Messages postés 218 Statut Membre -
salut,
quelqu'un pourra t-il me proposer une solution meuilleure pour récupérer seulement, la durée de fonction du système à partir du uptime, autrement dit si la valeur du "uptime" est :
je veux seulement récupérer :
en utilisant des commandes shell
et si le uptime est:
je voudrais récupérer:
plus exactement, je veux récupérer le résultat de la commande "uptime" compris entre les deux mots"up" et "user":
merci d'avance
quelqu'un pourra t-il me proposer une solution meuilleure pour récupérer seulement, la durée de fonction du système à partir du uptime, autrement dit si la valeur du "uptime" est :
15:32:02 up 1:19, 5 users, load average: 4.47, 5.55, 5.55
je veux seulement récupérer :
1:19
en utilisant des commandes shell
et si le uptime est:
1:07pm up 11 day(s), 19 min(s), 1 user, load average: 0.50, 0.46, 0.66
je voudrais récupérer:
11 day(s), 19 min(s)
plus exactement, je veux récupérer le résultat de la commande "uptime" compris entre les deux mots"up" et "user":
up 11 day(s), 19 min(s), 1 user up 1:19, 5 users
merci d'avance
7 réponses
-
bonjour
jipicy a deja donne des exemples en voici un
https://forums.commentcamarche.net/forum/affich-8068994-linux-bash-shell-extraction-de-chaine
a+ -
Salut,
$ cat plop 15:32:02 up 1:19, 5 users, load average: 4.47, 5.55, 5.55 je veux seulement récupérer : 1:19 en utilisant des commandes shell et si le uptime est: 1:07pm up 11 day(s), 19 min(s), 1 user, load average: 0.50, 0.46, 0.66 $ sed -n 's/.* up \(.*\), *[[:digit:]]* *users*.*/\1/p' plop 1:19 11 day(s), 19 min(s)
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.
GNU/Linux : Gnu/Linux is Not Ubuntu !-
-
-n Affichage que dur demande, associée au flag "p" (voir plus loin) s Commande de substitution .* up Cette première expression matche tout (.*) ce qui précède le mot "up" plus l'espace qui le suit \(.*\) Sous-expression délimitée par des accolades protégées, sensée contenir ce qui sera affiché plus tard par son référencement (\1). , *[[:digit:]]* *users*.* Ici on matche une virgule (,) suivie d'au moins un espace ou plusieurs ( *), suivis d'au moins un chiffre ou de plusieurs ([[:digit:]]*), suivis d'au moins un espace ou plusieurs ( *), puis du mot "user" avec ou sans "s" final (s*), puis le reste de la ligne (.*) \1 Référence arrière. C'est elle qui sera affichée. Elle matche tout ce qui se trouve dans l'expression "\(.*\)" p On affiche que la partie concernée.
-
-
re,
moi j'avais bien aimeuptime >tim [localhost Documents]$ cat tim 19:09:24 up 2:22, 3 users, load average: 0.08, 0.05, 0.10 awk '{print $1,$3}' tim | sed 's/to=<//;s/>//' 19:09:24 2:22,
a+ -
Pour ma part j'aurais fait comme ça :
up=$(uptime | awk '{print $3":"$4}') up=${up%,*}
Ce qui me donne :2:23
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
et aussi ...A partir du fichier /proc/uptime qui renvoie en secondes :)
malekalmorte@MaK-tux:~$ i='cat /proc/uptime|sed -n 's/\([0-9]\+\)\..*/\1/p''; echo $i secs ; echo $(($i / 60))min ; echo $(($i / 60 / 60 ))h ; echo $(($i / 60 / 60 / 24))day 3063 secs 51min 0h 0day malekalmorte@MaK-tux:~$ i='cat /proc/uptime|sed -n 's/\([0-9]\+\)\..*/\1/p''; echo $i secs ; echo $(($i / 60))min ; echo $(($i / 60 / 60 ))h ; echo $(($i / 60 / 60 / 24))day 3201 secs 53min 0h 0day
Les hommes réunissent tous les erreurs de leur vie et créent un monstre qu'il appelle destin. -
bonjour,
on se demande si nos réponses l'on intéressé :-)
a+
-