获取gawk正则表达式解析器以识别NUL字符

时间:2015-03-29 13:14:09

标签: regex gawk nul

我有一系列文件,我正在尝试使用gawk进行处理和验证。少数文件损坏并包含NUL(0x00)字符的运行,我想拒绝这些字符无效。

然而,似乎gawk(4.1.1)基本上忽略了NUL字符。这是我调用此问题的最小代码:

BEGIN {
    FS="[#/]"   #Split at hash or slash
    OFS = ":"
}

$10 !~ "^[[:digit:]]+$" {
    print NR, $0
}

这应该打印字段10不是正整数的所有记录。但是,它无法打印哪个字段10是' 7'接着是一长串NUL。

如何识别NUL角色?我试过--posix命令行选项无济于事。

ADDENDUM:我将代码更改为:

BEGIN {
    FS="[#/]"   #Split at hash or slash
    OFS = ":"
}

$10 ~ "^7$" {
    print NR, $10
}

即。将标准更改为~并在第十个字段中自行搜索7。这匹配第十个字段中的7NULNULNUL...。但是,使用:

$10 ~ "^7\0+$"

即。匹配7后跟一个或多个显式指定的NUL个字符(八进制零)无法匹配。

如果这是预期的行为,有人可以向我解释一下吗?有没有办法实现我想要实现的目标?

0 个答案:

没有答案