sed: insert a string after every N lines

前端 未结 6 2084
無奈伤痛
無奈伤痛 2021-01-31 03:55

I want to insert a string after every 30 lines in my large file. I\'m using mini-sed, which doesn\'t support ~ (tilde) range operator. I\'m looking for sed-only solution please.

6条回答
  •  青春惊慌失措
    2021-01-31 04:23

    This inserts a line after every 3 lines.

    [STEP 101] # cat insert.sed
    # add one more 'x' into the hold space
    x
    s/^/x/
    t reset_t_cond
    : reset_t_cond
    # check if there are 3 'x' chars now
    s/x\{3\}//
    x
    t insert
    b
    
    : insert
    a\
    INSERT HERE
    [STEP 102] # seq 10 | sed -f insert.sed
    1
    2
    3
    INSERT HERE
    4
    5
    6
    INSERT HERE
    7
    8
    9
    INSERT HERE
    10
    [STEP 103] #
    

提交回复
热议问题