how to ignore blank lines and comment lines using awk

19,828

Solution 1

Change !/^$/ to

!/^($|#)/

or

!/^($|[:space:]*#)/

if you want to disregard whitespace before the #.

Solution 2

awk 'NF && $1!~/^#/' data.txt

Will print all non-blank lines (number of fields NF is not zero) and lines that don't contain # as the first field.

It will handle a line of whitespace correctly since NF will be zero, and leading blanks since $1 will ignore them.

Solution 3

awk 'NF && !/^[:space:]*#/' data.txt

Because '[:space:]*' catches none or more spaces.

Share:
19,828
kumar
Author by

kumar

Updated on July 07, 2022

Comments

  • kumar
    kumar almost 2 years

    i am writing this code:

    awk -F'=' '!/^$/{arr[$1]=$2}END{for (x in arr) {print x"="arr[x]}}' 1.txt 2.txt
    

    this code ignore blank lines, but i also want to ignore line starting with # (comments).

    Any idea how to add multiple patterns?