Linux sedおよびlmセンサー

Linux 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

関連情報