Повторите последовательность и перенумеруйте список команд - PullRequest
0 голосов
/ 11 мая 2019

Я пытаюсь повторно упорядочить и перенумеровать следующий блок команд, чтобы каждая команда следовала нумерации, которая соответствует структуре, такой как эта:

0.1
0.2
..
0.9
1.0
1.1
..

До сих пор я мог вытащить строки с номерами с помощью следующей команды, но не уверен, каким будет лучший способ выполнить повторную последовательность + перенумерацию. Могу ли я получить помощь в этом?

awk '$2 ~ /\y[0-9]+\y/' eem.txt

ВЫХОД ДЛЯ ФИЛЬТРАЦИИ

 event manager applet monitorHealth authorization bypass
    event manager applet monitorHealth
    event syslog pattern xx maxrun 50 ratelimit 50
    action 0.1 cli command xx
    action 0.2 cli command xx
    action 0.4 cli command xx
    action 0.4 cli command xx
    action 0.4 cli command "undebug all”
    action 0.3 cli command xx
    action 0.4 cli command xx
    action 0.5 cli command xx
    action 0.6 cli command xx
    action 0.7 cli command xx
    action 0.8 cli command xx
    action 0.9 cli command xx
    action 1.1 cli command xx
    action 1.2 cli command xx
    action 1.3 cli command xx
    action 1.4 cli command xx
    action 1.5 cli command xx
    action 1.6 cli command xx
    action 1.7 cli command xx
    action 1.8 cli command xx
    action 1.9 cli command xx
    action 2.1 cli command xx
    action 2.2 cli command xx
    action 2.3 cli command xx

Спасибо.

1 Ответ

1 голос
/ 11 мая 2019

Чтобы изменить нумерацию строк, просто установите счетчик для нового номера, и для каждой совпадающей строки замените текущее значение этого второго столбца и увеличьте на 0,1.

$ awk -v counter=0.1 '$2 ~ /^[0-9]+\.[0-9]$/ { $1 = "    " $1; # Keep the leading spaces
                                               $2 = sprintf("%.1f", counter);
                                               counter += 0.1 } 1' eem.txt
event manager applet monitorHealth authorization bypass
    event manager applet monitorHealth
    event syslog pattern xx maxrun 50 ratelimit 50
    action 0.1 cli command xx
    action 0.2 cli command xx
    action 0.3 cli command xx
    action 0.4 cli command xx
    action 0.5 cli command "undebug all”
    action 0.6 cli command xx
    action 0.7 cli command xx
    action 0.8 cli command xx
    action 0.9 cli command xx
    action 1.0 cli command xx
    action 1.1 cli command xx
    action 1.2 cli command xx
    action 1.3 cli command xx
    action 1.4 cli command xx
    action 1.5 cli command xx
    action 1.6 cli command xx
    action 1.7 cli command xx
    action 1.8 cli command xx
    action 1.9 cli command xx
    action 2.0 cli command xx
    action 2.1 cli command xx
    action 2.2 cli command xx
    action 2.3 cli command xx
    action 2.4 cli command xx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...