awk中的空白区域打印和匹配

时间:2013-08-05 15:53:30

标签: regex awk tmux

我有一个awk声明要在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中添加空格的特定方法?

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

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

您需要使用逗号将输出与OFS中的awk (输出字段分隔符)分开,默认情况下是{{1}}。没有逗号你正在进行字符串连接。