【问题标题】:Add numbers to end of every alternate line before bracket在括号前的每行末尾添加数字
【发布时间】:2020-02-24 20:14:51
【问题描述】:
需要在linux中hosts文件的特定位置添加连续的数字
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
【问题讨论】:
标签:
linux
string
awk
vim
sed
【解决方案1】:
$ 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
【解决方案2】:
请您尝试关注一下。
awk '/\[tab/{sub(/\]$/,++count"&")} 1' Input_file
或者,如果每一行都从您要插入数字的 [ 开始,而不是从 [tab 开始,请尝试关注。
awk '/^\[/{sub(/\]$/,++count"&")} 1' Input_file
或者通过 OP 的尝试,如果您想插入奇数行的计数,请尝试以下操作。
awk 'FNR%2!=0{sub(/\]$/,++count"&")} 1' Input_file