5

我正在写这段代码:

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

此代码忽略空白行,但我也想忽略以 # 开头的行(注释)。

知道如何添加多个模式吗?

4

3 回答 3

13

更改!/^$/

!/^($|#)/

或者

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

如果您想忽略#.

于 2012-06-29T18:26:22.133 回答
10
awk 'NF && $1!~/^#/' data.txt

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

它将正确处理一行空白,因为 NF 将为零,并且前导空白$1将忽略它们。

于 2012-06-29T18:27:10.410 回答
2
awk 'NF && !/^[:space:]*#/' data.txt

因为 '[:space:]*' 捕获一个或多个空格。

于 2014-03-16T21:36:33.840 回答