2013-08-05 2 views
1

У меня есть заявление AWK для печати мой индикатор батареи на tmux я нашел в сутью:Пробелы в AWK печати и матч

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?

ответ

0

Это должно сделать трюк:

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

Вы должны использовать запятую, чтобы отделить выход с (выходной разделитель полей) OFS в awk, который по умолчанию является один пробел. Без запятой вы выполняете конкатенацию строк.

Смежные вопросы