Print every n lines from a file

后端 未结 4 912
醉话见心
醉话见心 2021-01-21 05:10

I\'m trying to print every nth line from file, but n is not a constant but a variable.

For instance, I want to replace sed -n \'1~5p\'

4条回答
  •  青春惊慌失措
    2021-01-21 05:42

    You can do it like this for example:

    i=3
    sed "2,${i}s/.*/changed line/g" InputFile
    

    Example:

    AMD$ cat File
    aaaaaaaaaaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbbbbbbb
    cccccccccccccccccccccc
    ffffdffffdffffdffffdffffdffffdffffffffd
    eeeeeeeeeeeeeeeeeeeeeeee
    fffffffffffffffffffff
    ggggggggggggggggggggg
    
    AMD$ i=4; sed "2,${i}s/.*/changed line/g" File
    aaaaaaaaaaaaaaaaaaaaaaaa
    changed line
    changed line
    changed line
    eeeeeeeeeeeeeeeeeeeeeeee
    fffffffffffffffffffff
    ggggggggggggggggggggg
    

    The key is to use " " for variable substitution.

提交回复
热议问题