我正在写这段代码:
awk -F'=' '!/^$/{arr[$1]=$2}END{for (x in arr) {print x"="arr[x]}}' 1.txt 2.txt
此代码忽略空行,但我也想忽略以#(注释)开头的行。
知道如何添加多种模式吗?
答案 0 :(得分:11)
将!/^$/
更改为
!/^($|#)/
或
!/^($|[:space:]*#)/
如果你想在#
之前忽略空格。
答案 1 :(得分:8)
awk 'NF && $1!~/^#/' data.txt
将打印所有非空行(字段数NF
不是
零)和不包含#
的行作为第一个字段。
它将正确处理一行空格,因为NF将为零,而$1
以来的前导空格将忽略它们。
答案 2 :(得分:0)
awk 'NF && !/^[:space:]*#/' data.txt
因为' [:space:] *'捕获 none 或更多空格。