【问题标题】:sed for weather for conkysed 用于 conky 的天气
【发布时间】:2015-01-14 17:10:11
【问题描述】:
$ inxi -xxxw
Weather:   Conditions: 23 F (-5 C) - Scattered Clouds Wind: From the West at 15 MPH Humidity: 53%
       Pressure: 29.89 in (1012 mb) Wind Chill: 10 F (-12 C) 
       Location: Chicago IL (USA) Altitude: 184 ft
       Time: November 17, 11:25 AM CST (America/Chicago) Observation Time: November 17, 10:53 AM CST    

1) 以上是本地天气的终端命令。

$ inxi -xxxw | sed 's/Co/\nCo/;s/Wind:/\nWind:/;s/Hu/\nHu/;s/Pr/\nPr/;s/Wind Chill/\nWind Chill/;s/Loc/\nLoc/;s/Al/\nAl/;s/Time:/\nTime:/;s/Ob/\nOb/'|sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g'|sed '/^[ \t]/d'
Weather:   
Conditions: 23 F (-5 C) - Scattered Clouds 
Wind: From the West at 15 MPH 
Humidity: 53%
Pressure: 29.89 in (1012 mb) 
Wind Chill: 10 F (-12 C) 
Location: Chicago IL (USA) 
Altitude: 184 ft
Time: November 17, 11:31 AM CST (America/Chicago) 
Observation Time: November 17, 10:53 AM CST

2) 以上是conky中带sed垂直显示的命令。

12Weather:   12
Conditions 28 F (-2 C) - Mostly Cloudy 12Wind From the WNW at 14 MPH 12
Humidity 69%
12           12
Pressure 29.94 in (1014 mb) 12
Wind Chill 17 F (-8 C) 

3)以上是在conky.conf文件中运行垂直显示命令(2)的结果。

问题是我如何让 (3) 看起来像 (2) ?只是无法在此处获取相关信息。

【问题讨论】:

  • 你想达到什么目的?
  • 这不能回答您的问题,但它是一个快速的 sed 提示:& 变量包含整个匹配的字符串。您所有的s/Co/\nCo/; 类型替换都可以简化为s/Co/\n&/;
  • 为什么要在 3 中显示该输出?它看起来缺少数据。散落在各处的12s 是怎么回事?很高兴您可以使用 #2 获得所需的输出。花时间尝试弄清楚如何将其用于您的最终要求。祝你好运。
  • 当我在 conky.conf 中运行 (2) 中的命令时,我应该得到相同的输出。我得到了(3)中所示的错误输出。我希望 (2) 以 conky 显示。如果你有一个 conky 跑步试试。谢了。

标签: perl awk sed conky


【解决方案1】:

可能 conky 的配置解析器“吃掉”了sed 命令中的许多特殊字符。如果真的是这个问题,你可以改用 sed 解释器脚本。

使用以下内容创建文件/usr/local/bin/inxi2conky 并使其可执行:

#!/bin/sed -rf                          
# Remove leading whitespace
s/^[ \t]+//
# Insert linefeeds in front of keys
s/Co|Wind|Hu|Pr|Loc|Al|^Time|Ob/\n&/g
# Remove resulting extra leading linefeeds
s/^\n//

然后将此添加到conky.conf:

inxi -xxxw | /usr/local/bin/inxi2conky

【讨论】:

  • 仍然在 conky 显示中看到错误的输出,如上面 (3) 所示。
  • 正如我所提到的,这只是问题的一个可能原因。您可以尝试将整个管道放入一个 shell 脚本并从 conky 调用它。
猜你喜欢
  • 1970-01-01
  • 2011-07-15
  • 2012-05-24
  • 1970-01-01
  • 2020-05-30
  • 2015-11-12
  • 1970-01-01
  • 2015-02-08
  • 2011-11-15
相关资源
最近更新 更多