awk 的彩色输出
Output of awk in color
我正在尝试在我新安装的 Arch 系统上设置 polybar。我知道很少 bash 脚本。我才刚刚开始。如果这不是本论坛的合适问题,我很乐意将其删除。我想获得以下 awk
颜色输出:
sensors | grep "Package id 0:" | tr -d '+' | awk '{print }'"
我知道如何使用 echo 执行此操作,所以我尝试传递输出,以便使用 echo 命令将其呈现为彩色:
sensors | grep "Package id 0:" | tr -d '+' | awk '{print }' | echo -e "\e[1;32m ???? 3[0m"
我想在 ???
所在的位置放置适当的信息。
awk output
只是一个温度,像这样:50.0°C
。
edit:事实证明,有一种非常简单的方法可以将颜色传递给 polybar 中 bash 脚本(甚至 python 脚本)的输出。但是我仍然对为什么答案中建议的解决方案在终端中有效但在 polybar 模块中无效仍然感到困惑。我有几个使用脚本没有问题的自定义模块。
使用awk
$ sensors | awk '/Package id 0:/{gsub(/+/,""); print "3[32m""3[0m"}'
如果还是不行,你可以试试这个方法;
$ sensors | awk -v color="$(tput setaf 2)" -v end="$(tput sgr0)" '/Package id 0:/{gsub(/+/,""); print color end}'
这是您要捕获 awk 输出的地方。由于 awk 可以做 grep 和 tr 做的事情,我已经将管道集成到一个 awk 调用中:
temp=$(sensors | awk '/Package id 0:/ {gsub(/\+/, ""); print }')
echo -e "\e[1;32m $temp 3[0m"
我正在尝试在我新安装的 Arch 系统上设置 polybar。我知道很少 bash 脚本。我才刚刚开始。如果这不是本论坛的合适问题,我很乐意将其删除。我想获得以下 awk
颜色输出:
sensors | grep "Package id 0:" | tr -d '+' | awk '{print }'"
我知道如何使用 echo 执行此操作,所以我尝试传递输出,以便使用 echo 命令将其呈现为彩色:
sensors | grep "Package id 0:" | tr -d '+' | awk '{print }' | echo -e "\e[1;32m ???? 3[0m"
我想在 ???
所在的位置放置适当的信息。
awk output
只是一个温度,像这样:50.0°C
。
edit:事实证明,有一种非常简单的方法可以将颜色传递给 polybar 中 bash 脚本(甚至 python 脚本)的输出。但是我仍然对为什么答案中建议的解决方案在终端中有效但在 polybar 模块中无效仍然感到困惑。我有几个使用脚本没有问题的自定义模块。
使用awk
$ sensors | awk '/Package id 0:/{gsub(/+/,""); print "3[32m""3[0m"}'
如果还是不行,你可以试试这个方法;
$ sensors | awk -v color="$(tput setaf 2)" -v end="$(tput sgr0)" '/Package id 0:/{gsub(/+/,""); print color end}'
这是您要捕获 awk 输出的地方。由于 awk 可以做 grep 和 tr 做的事情,我已经将管道集成到一个 awk 调用中:
temp=$(sensors | awk '/Package id 0:/ {gsub(/\+/, ""); print }')
echo -e "\e[1;32m $temp 3[0m"