1 votes

Comment utiliser grep pour trouver les 7 caractères suivants "temp1" ?

Comment puis-je obtenir "+45.0°C" si la sortie suivante était un fichier (http://paste.linuxthefish.net/4@raw) ?

Je peux l'obtenir sur une seule ligne en faisant

sensors -A acpitz-virtual-0 > sen
grep temp1 ~/sen

mais il y a toujours un tas de conneries inutiles dessus :

"temp1:        +42.0°C  (crit = +90.0°C)"

3voto

Flynn Points 484

Voici la réponse : Par exemple, voici les textes contenus dans le fichier

acpitz-virtual-0
Adapter: Virtual device
temp1:        +45.0°C  (crit = +90.0°C)
temp2:        +45.0°C  (crit = +90.0°C)

Pour obtenir le +45.0°C de temp1, utilisez cette commande :

grep temp1 < theFileWithTemp.txt | awk '{print $2}'

0voto

Igor B. Points 365

Vous pouvez utiliser egrep (ou grep -e) pour utiliser des expressions régulières. Avec .{7} 7 caractères arbitraires :

echo -e "temp1:\t+42.0°C  (crit = +90.0°C)" | egrep -o "temp1:.{7}"
temp1:  +42.

Avec -o, vous limitez la sortie à votre correspondance. Pour couper juste le reste de la ligne :

 echo -e "temp1:\t+42.0°C  (crit = +90.0°C)" | egrep -o "temp1:.{7}" | egrep -o ".{5}$"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X