我正在使用vim制作一个简单的脚本,尝试将lm_sensors的输出转换为另一个文件。我的问题是需要完成的格式化需要组合两行并将它们输出到文件中。这是我目前的情况:
LINE1=(echo -en System: INFO $(date +%x) $(date +%T) : CPU Temperature \{ ; sensors| grep Core\ sed 's/ /, /g'|tr -d '\n')
LINE2=(echo -e \})
echo $LINE1$LINE2 >> (FILE PATH)
LINE2的唯一目的是在数据的末尾放置一个}括号,所以如果有更好的方法可以在一行中完成所有操作,那么我就是耳朵。
忽略格式化数据的sed和tr命令,我希望输出数据看起来如下,尽管我总是得到一个'意外令牌';''错误消息与上面的脚本。
System: INFO (date time) : CPU Temperature { CPU Temp DATA }
我非常感谢所有的投入。
答案 0 :(得分:2)
它可以更加整洁:
temp=$(sensors | awk '/Core/ {printf("%s%s", sep, $3); sep = ", "}'; echo "")
printf "System: INFO %s : CPU Temperature { %s }\n" "$(date "+%x %T")" "$temp"
答案 1 :(得分:1)
试试这个,或许:
LINE1=`echo -en System: INFO $(date +%x) $(date +%T) : CPU Temperature \{ ; sensors| grep Core\ sed 's/ /, /g'|tr -d '\n'`
echo "$LINE1\}" >> (FILE PATH)
可替换地:
(echo -en System: INFO $(date +%x) $(date +%T) : CPU Temperature \{ ; sensors| grep Core\ sed 's/ /, /g'|tr -d '\n')|while read line; do
echo "$LINE1\}" >> (FILE PATH)
done