Deleting the first two lines of a file using BASH or awk or sed or whatever

后端 未结 4 1502
独厮守ぢ
独厮守ぢ 2021-01-31 15:48

I\'m trying to delete the first two lines of a file by just not printing it to another file. I\'m not looking for something fancy. Here\'s my (failed) attempt at awk:



        
相关标签:
4条回答
  • 2021-01-31 16:25

    How about:

    tail +3 file
    

    OR

    awk 'NR>2' file
    

    OR

    sed '1,2d' file
    
    0 讨论(0)
  • 2021-01-31 16:25

    You're nearly there. Try this instead:

    awk 'NR > 2 { print }' myfile
    

    awk is rule based, and the rule appears bare (i.e., without braces) before the block it woud execute if it passes.

    Also as Jaypal has pointed out, in awk if all you want to do is print the line that matches the rules you can even omit the action, thus simplifying the command to:

    awk 'NR > 2' myfile
    
    0 讨论(0)
  • 2021-01-31 16:28

    Use tail:

    tail -n+3 file
    

    from the man page:

       -n, --lines=K
              output the last K lines, instead of the last 10; or use  -n  +K
              to output lines starting with the Kth
    
    0 讨论(0)
  • 2021-01-31 16:28

    awk is based on pattern{action} statements. In your case, the pattern is NR>2 and the action you want to perform is print. This action is also the default action of awk.

    So even though

    awk 'NR>2{print}' filename

    would work fine, you can shorten it to

    awk 'NR>2' filename.

    0 讨论(0)
提交回复
热议问题