sensors|grep -oP "Core 1:\s*\+\K[0-9]+" >> lmsenreading1.txt
然后:
sensors|grep -oP "Core 0:\s*\+\K[0-9]+" >> lmsenreading0.txt
.txt
然后用分隔符连接两个文件,
。例如,这应该给出:65,66
如果我使用
sensors|grep -oP ":\s*\+\K[0-9]+"
我的输出是
27
65
66
这27
不是必需的。
如何格式化输出以sensors|grep -oP ":\s*\+\K[0-9]+"
给出:
65,66
答案1
您可以 grep 查找“Core”。它匹配 Core 0 和 Core 1(在我的系统 0 和 2 上):
sensors | grep -oP "Core .:\s*\+\K[0-9]+" | tr "\n" ","
46,42,
并使用 tr(anslate) 将换行符更改为逗号。
这会在最后为您提供一个额外的逗号。
您可以通过从开始 (0) 到结束前的一 (-1) 的子字符串来摆脱它:
sens=$(sensors | grep -oP "Core .:\s*\+\K[0-9]+" | tr "\n" ",")
echo ${sens: 0: -1}
47,44
答案2
不需要文件或变量,只需使用printf
和命令替换:
printf '%s,%s\n' $(sensors | grep -oP 'Core [01]:\s*\+\K[0-9]+')
我的系统上的输出:
53,54
请注意对grep
正则表达式:而不是单个字符0和1为了指定核心编号,字符类[01]
会检查两个核心。