[英]Extracting value from ipmitool text file using bash
我正在使用Linux(Raspberry Pi)和bash。 我正在使用Pi從Dell iDRAC中提取IPMI傳感器信息。 我設法將傳感器信息提取到txt文件中,如下所示:
Fan1 RPM | 2400.000 | RPM | ok | na | 600.000 | 840.000 | na | na | na
Fan2 RPM | 2400.000 | RPM | ok | na | 600.000 | 840.000 | na | na | na
Fan3 RPM | 2400.000 | RPM | ok | na | 600.000 | 840.000 | na | na | na
Fan4 RPM | 2280.000 | RPM | ok | na | 600.000 | 840.000 | na | na | na
Fan5 RPM | 2400.000 | RPM | ok | na | 600.000 | 840.000 | na | na | na
Fan6 RPM | 2520.000 | RPM | ok | na | 600.000 | 840.000 | na | na | na
Inlet Temp | 11.000 | degrees C | ok | na | -7.000 | 3.000 | 42.000 | 47.000 | na
Exhaust Temp | 18.000 | degrees C | ok | na | 3.000 | 8.000 | 70.000 | 75.000 | na
Temp | na | | na | na | na | na | 0.000 | na | na
Temp | na | | na | na | na | na | 0.000 | na | na
我要實現的目的是提取第二列中的值,例如Fan1 RPM值2400.000並將其轉儲到文件中,例如fan1.txt
我猜想使用sed這樣的方法是可行的,但是我在這個領域還是個新手。
Grep的價值,並削減它。
grep "Fan1 RPM" input_file | cut -d'|' -f2 > fan1.txt
您也可以通過tr -d ' '
或tr -d '[:space:]
來刪除(空格)空格。
每當您談論帶有“列”(字段)的輸入時,您要使用的工具都是awk,而不是grep或sed,因為awk是專為在字段上工作而其他工具卻沒有設計的。
$ awk -F' *[|] *' '$1=="Fan1 RPM"{print $2}' file
2400.000
$ awk -F' *[|] *' '($1=="Inlet Temp") && ($7 >= 3) {print $6, $9, $10}' file
-7.000 47.000 na
或僅轉換為CSV以便可以被Excel等讀取:
$ awk -F' *[|] *' -v OFS=',' 'NF{$1=$1;print}' file
Fan1 RPM,2400.000,RPM,ok,na,600.000,840.000,na,na,na
Fan2 RPM,2400.000,RPM,ok,na,600.000,840.000,na,na,na
Fan3 RPM,2400.000,RPM,ok,na,600.000,840.000,na,na,na
Fan4 RPM,2280.000,RPM,ok,na,600.000,840.000,na,na,na
Fan5 RPM,2400.000,RPM,ok,na,600.000,840.000,na,na,na
Fan6 RPM,2520.000,RPM,ok,na,600.000,840.000,na,na,na
Inlet Temp,11.000,degrees C,ok,na,-7.000,3.000,42.000,47.000,na
Exhaust Temp,18.000,degrees C,ok,na,3.000,8.000,70.000,75.000,na
Temp,na,,na,na,na,na,0.000,na,na
Temp,na,,na,na,na,na,0.000,na,na
您可以嘗試以下嗎?
awk 'match($0,/Fan1 RPM +\| +[0-9]+\.[0-9]+/){val=substr($0,RSTART,RLENGTH);sub(/.* /,"",val);print val}' Input_file
ipmitool -I lanplus -H BMC_IP -U BMC_USER -P BMC_PASS傳感器讀取'Fan1 RPM'| awk'{print $ NF}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.