Commande shell

Résolu
lamou23 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   -  
lamou23 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   -
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 :

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
A voir également:

7 réponses

jeanbi Messages postés 15119 Date d'inscription   Statut Contributeur Dernière intervention   2 184
 
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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 !
0
lamou23 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention  
 
pourrais tu m'expliquer un peu le code??
merci
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
-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.
0
jeanbi Messages postés 15119 Date d'inscription   Statut Contributeur Dernière intervention   2 184
 
re,
moi j'avais bien aime
uptime >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+
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Elle sert à quoi la commande "sed" ???
Y'a pas de "to=<" ni de ">" dans la ligne récupérée ;-\
0
Lucas
 
Pour ma part j'aurais fait comme ça :

up=$(uptime | awk '{print $3":"$4}')  
up=${up%,*}  


Ce qui me donne :
2:23
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Malekal_morte- Messages postés 180304 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   24 685
 
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.
0
jeanbi Messages postés 15119 Date d'inscription   Statut Contributeur Dernière intervention   2 184
 
bonjour,
on se demande si nos réponses l'on intéressé :-)
a+
0
lamou23 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour tous vos réponse :)
0