Добавьте цифры в конец каждой альтернативной строки перед скобкой - PullRequest
1 голос
/ 29 октября 2019

Необходимо добавить последовательный номер в определенное местоположение файла hosts в linux

awk '0==NR%2{$0} 1' FILE

пытался с awk не смог обойти

[tab-edge]
101.55.12.199
[tab-edge]
101.55.12.193
[tab-edge]
101.55.12.194
[tab-edge]
101.55.12.192

ожидаемые результаты

[tab-edge1]
101.55.12.199
[tab-edge2]
101.55.12.193
[tab-edge3]
101.55.12.194
[tab-edge4]
101.55.12.192

Ответы [ 2 ]

2 голосов
/ 29 октября 2019
$ awk '{sub(/]/,(NR+1)/2"&")}1' file
[tab-edge1]
101.55.12.199
[tab-edge2]
101.55.12.193
[tab-edge3]
101.55.12.194
[tab-edge4]
101.55.12.192
0 голосов
/ 29 октября 2019

Не могли бы вы попробовать следующее.

awk '/\[tab/{sub(/\]$/,++count"&")} 1' Input_file

ИЛИ, если каждая строка начинается с [, где вы хотите вставить цифры, а не с [tab, тогда попробуйте выполнить следующее.

awk '/^\[/{sub(/\]$/,++count"&")} 1'  Input_file


Или с попыткой OP, если вы хотите вставить счетчик для нечетных числовых строк, попробуйте выполнить следующее.

awk 'FNR%2!=0{sub(/\]$/,++count"&")} 1'  Input_file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...