Печать AWK и цвет 3 переменных - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть две команды AWK, которые эквивалентны grep -e PATTERN и другим цветам определенных слов в выводе, но не фильтруют только эти строки.Могут ли они быть объединены в один файл awk.sh?

В этом файле печатаются 3 переменные ( Имя пользователя , Групповая политика и Назначенный IP ).:

awk '/^Username/{print $0}/^Group/{print $0}/^Assigned/{print $0}' session.log

Так это выглядит так:

[root@localhost User]# ./find.sh Username : User1 Index : 111 Assigned IP : 11.11.11.111 Public IP : 22.22.22.222 Group Policy : DfltGrpPolicy Tunnel Group : Default-VPN Username : User2 Index : 111 Assigned IP : 11.11.11.111 Public IP : 22.22.22.222 Group Policy : DfltGrpPolicy Tunnel Group : Default-VPN

Другие цвета эти переменные зеленый и красный соответственно (но выводитмного мусора, и по какой-то причине окраска разбита на вторую переменную?):

cat session.log | awk '{ gsub("Username", "\033[1;32m&\033[0m");
                                   gsub("Assigned IP", "\033[1;32m&\032[0m");
                                   gsub("Group Policy", "\033[1;31m&\033[0m");
                                   print }'

Вот картина вывода раскраски:

Picture of coloring output

А вот отредактированный в MS Word, но это моя конечная цель.

Edited in MS Word, but this is my end goal.

1 Ответ

0 голосов
/ 26 ноября 2018
  1. Вам не нужен кот, чтобы прочитать файл.Просто используйте awk.
  2. Я думаю, что вы хотите sub вместо gsub.
  3. В Назначенном IP у вас есть \032[0m, но я думаю, что вы хотели \033[0m.
  4. Вы можете комбинировать все:

    awk '/^(Username|Assigned IP)/{sub("^(Username|Assigned IP)", "\033[1;32m&\033[0m"); print} /^Group Policy/{sub("^Group Policy", "\033[1;31m&\033[0m"); print}' session.log
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...