리눅스 sed 및 lm 센서

리눅스 sed 및 lm 센서

나는 다음을 사용하고 있습니다

while true; do sensors | grep 'Core 1'| sed -r 's/^.*: +(.*) +[(].*$/\1/' >> lmdata.txt; sleep 300;  done

체재

Core 1:       +68.0°C  (crit = +100.0°C)

도착하다

+68.0'C

임시 값만 가져오도록 sed 명령을 변경하려면 어떻게 해야 합니까?

68

당신의 도움에 감사드립니다

답변1

사용 sed:

sensors|sed -nE '/Core 1:/s/[^+]*\+([[:digit:]]+).*/\1/p'

일반 언어로 다음과 같이 작성할 수 있습니다.

sed비에코 모드에서 확장 정규식과 함께 사용됩니다.

  • 온라인 매칭핵심 1:
  • 찾다...
  • +를 제외한 모든 것
  • 그럼 +
  • 그런 다음 1자리 이상의 숫자를 저장하세요.
  • 그런 다음 줄 끝 부분과 일치시킵니다.
  • 사용. . . 교체...
  • 첫 번째로 저장된 패턴
  • 결과를 인쇄하고

답변2

다른 것을 재구성하지 않고도 명령의 sed 부분을 업데이트할 수 있어야 합니다.

sed -r 's/^.*: +([[:digit:]]+).* +[(].*$/\1/'

답변3

perl-regexp와 함께 grep을 사용하십시오.

$ sensors|grep -oP "Core 1:\s*\+\K[0-9]+"
70

관련 정보