Enlever des caractères sur la sortie d'une ligne de commande

FireBird

Grand Maître
salut à tous et à toutes

je ne garder que la température sur la sortie de la commande sensors
Code:
[firebird@mjolnir ~]$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +47.0°C  (crit = +85.0°C)                  

[firebird@mjolnir ~]$ sensors | grep ° | awk '{print $3}'
+47.0°C
[firebird@mjolnir ~]$ sensors | grep ° | awk '{print $3}' | xargs sed -i -e 's|+||g'
sed: impossible de lire +47.0°C: Aucun fichier ou répertoire de ce type
[firebird@mjolnir ~]$

par exemple sur la sortie ci-dessus je ne veux garder que 47. j'ai essayé avec la commande sed pour enlever '+', '°' etc mais ça ne marche pas.

quelqu'un connait un moyen pour effectuer ça en ligne de commande (bash) ?

Merci d'avance
 

zeb

Modérateur
Ohlala ! M'enfin, sed est une commande de flux comme grep ou awk. Pourquoi cet xargs ?

Allez, essaie ça plutôt :
Code:
$> sensors | sed -n "s/Core [0-9]:[[:space:]]*\([+-][0-9\.]*°C\).*/\1/p"
$> sensors | sed -n "s/Core [0-9]:[[:space:]]*[+-]\([0-9\.]*\)°C.*/\1/p"


(Si tu a plus de 10 cores, il faudra revoir la commande ^^ )
 

FireBird

Grand Maître
whoa, ça marche mieux mais j'ai toujours ".0".
Code:
[firebird@mjolnir ~]$ sensors / sed -n "s/Core [0-9]:[[:space:]]*[+-]\([0-9\.]*\)°C.*/\1/p"
63.0
[firebird@mjolnir ~]$
Zeb, il faut que tu m'explique un peu ta commande parce que je la trouve hyper génial :D

d'ailleurs j'ai essayé ça
Code:
[deadpool@mjolnir ~]$ sensors | sed -n "s/Core [0-9]:[[:space:]]*[+-]\([0-9\.]*\)°C.*/\1/p" | sed -n "s/.0//p"
63

donc ça marche maintenant reste à savoir si o peut faire ça en plus simple.

Merci Zeb :merci:
 

FireBird

Grand Maître
la bonne :D
Code:
$ sensors | sed -n "s/Core[[:space:]][0-9]:[[:space:]]*[+-]\([0-9]*\).*/\1/p"
63
 

zeb

Modérateur
C'est à toi de comprendre et d'adapter (mékiléchiancezèb), ce que tu as fait par ailleurs. :sol: <-- FireBird

Ben mon ptit gars, avant que je ne t'explique quoi que ce soit, tu me révises le chapitre Expression régulière. Si t'y comprends que dalle, tu reviens ici. Si t'y pige tout, ben t'auras pas perdu ton temps ! :o

sed, grep, awk, perl sont des commandes qui deviennent redoutables d'efficacité dès qu'on a réussi à appréhender ces fichues RegExp.
 

bmax14

Grand Maître
Redoutable, c'est le mot...
Pas moyen d'y mettre des commentaires, compliqué au possible et surtout pratique! Et ça c'est le pire, connaissant le informaticiens, très friand de tout ce qui pourrait leur permettre de bosser moins ;)

Perso, je préfère le faire sur plusieurs lignes afin d'y mettre des commentaire:

Code:
sensors | #Capture des mesures
grep -o '\+.*(' | #On isole la température qui nous interesse (du + jusqu'au début de la paranthèse)
grep -E '[0-9]{2,}' -o #Et on ne prend que les nombres, minimum 2
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 811
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut