1

我有一个 awk 语句来打印我在 gist 中找到的 tmux 上的电池指示器:

set -g status-right "batt: #(pmset -g batt | awk 'NR==2 {gsub(/;/,\"\"\\); \ print (match($3,/^ch/\\) ? \"\ \":\"\"\\) $2 $4}') | %d-%h %H:%M "

这最终打印:batt: 60%2:18 | 05-Aug 11:51

如何在 60% 和 2:18 之后插入空格?$2 变量是 60%,$4 是 2:18。

所以我希望它输出: batt: 60% 2:18 | 05-Aug 11:51

我尝试在每个可能的点添加空间,但它没有改变。有没有在awk中添加空格的特定方法?

4

1 回答 1

0

这应该可以解决问题:

awk 'NR==2 {gsub(/;/,\"\"\\);print (match($3,/^ch/\\) ? \"\ \":\"\"\\),$2,$4}'

您需要使用逗号将输出与OFS (输出字段分隔符)分开,awk其中默认情况下是一个空格。没有逗号,您正在执行字符串连接。

于 2013-08-05T16:47:05.830 回答