如何使用awk忽略空白行和注释行

我正在写这个代码:

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

这段代码忽略空白行,但我也想忽略#(注释)开始的行。

任何想法如何添加多个模式?

Solutions Collecting From Web of "如何使用awk忽略空白行和注释行"

更改!/^$/

 !/^($|#)/ 

要么

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

如果你想在#之前忽略空格。

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

将打印所有非空行(字段数NF不为零)和不包含#作为第一个字段。

它将正确处理一行空白,因为NF将为零,而自$1空白将忽略它们。

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

因为'[:space:] *' 没有捕获任何空间。