【问题标题】: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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-28
        • 2016-04-13
        • 1970-01-01
        • 2015-02-16
        • 2013-04-05
        • 2019-04-24
        • 2011-07-15
        • 1970-01-01
        相关资源
        最近更新 更多