使用此命令(upower -i /org/freedesktop/UPower/devices/battery_BAT1)我的终端显示以下输出:
native-path: BAT1
vendor: LG
power supply: yes
updated: mar 31 may 2016 12:45:15 CEST (101 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: fully-charged
warning-level: none
energy: 50,4088 Wh
energy-empty: 0 Wh
energy-full: 51,4522 Wh
energy-full-design: 48,1 Wh
energy-rate: 6,29 W
voltage: 8,313 V
percentage: 97%
capacity: 100%
icon-name: 'battery-full-charged-symbolic'我需要获得一个包含输出数据的数组。如下所示:[BAT1, LG, yes, [...], 100%, 'battery-full-charged-symbolic']
有什么办法可以做到吗?
发布于 2016-05-31 19:43:02
您的输出是典型的基于列的文本。(分隔符为:)。您可以使用awk将其格式化为所需的格式。
upower cmd...|awk -F':\\s*' '{printf "%s%s",(NR==1?"[":", "), $2}END{print "]"}'将为您提供:
[BAT1, LG, yes, mar 31 may 2016 12, yes, yes, , yes, yes, fully-charged, none, 50,4088 Wh, 0 Wh, 51,4522 Wh, 48,1 Wh, 6,29 W, 8,313 V, 97%, 100%, 'battery-full-charged-symbolic']发布于 2016-06-02 15:36:31
您可以尝试执行以下操作:
var = ( $(upowerOutput | grep -oE ':.+$' | sed -e 's/^[ \t:]*//') )grep部件获取必需的字段,sed用于修剪前导空格和:。
https://stackoverflow.com/questions/37544585
复制相似问题