Delete lines from file with SED or AWK

前端 未结 3 840
旧时难觅i
旧时难觅i 2020-12-09 04:57

Ive seen many variations, very confused on how to solve these 3 problems.

  1. deleting all rows except the first from a file
  2. deleting a row from file with
3条回答
  •  再見小時候
    2020-12-09 05:25

    With awk:

    # delete line 1
    awk 'NR == 1 {next} {print}' file
    
    # delete line number stored in shell variable $n
    awk -v n=$n 'NR == n {next} {print}' file
    
    # delete between lines $a and $b inclusive
    awk -v m=$a -v n=$b 'm <= NR && NR <= n {next} {print}' file
    

    To save a few chars, {print} can be replaced just with 1

    To overwrite the original file, you have to do something like this

    awk '...' file > tmpfile && mv tmpfile file
    

提交回复
热议问题