awk和(也许)空字符的问题

时间:2019-01-17 19:26:11

标签: awk binary mawk

我有这个文件,“可能是”二进制文件:

PATCH

如果我使用 DATA FIELDINFO Cloud_Mask_QA {{{ rank: 2 type: 20 dims: Cell_Along_Swath_1km 2030, Cell_Across_Swath_1km 1354, data: ... (2748620) (0,0) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,16) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,32) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,48) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,64) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,80) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,96) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,112) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,128) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,144) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,160) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,176) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ (0,192) ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@, ^@ ,为了看到“不可打印的字符”,我得到:

sed -n "l" file

我正在尝试在其上使用awk,但是如果执行 DATA FIELDINFO Cloud_Mask_QA {{{$ rank: 2$ type: 20$ dims: Cell_Along_Swath_1km 2030, Cell_Across_Swath_1km 1354, $ data: ... (2748620)$ (0,0) \000, \000, \000, \000, \000, \000, \000, \000, \000, \ \000, \000, \000, \000, \000, \000, \000$ (0,16) \000, \000, \000, \000, \000, \000, \000, \000, \000, \ \000, \000, \000, \000, \000, \000, \000$ (0,32) \000, \000, \000, \000, \000, \000, \000, \000, \000, \ \000, \000, \000, \000, \000, \000, \000$ (0,48) \000, \000, \000, \000, \000, \000, \000, \000, \000, \ \000, \000, \000, \000, \000, \000, \000$ (0,64) \000, \000, \000, \000, \000, \000, \000, \000, \000, \ \000, \000, \000, \000, \000, \000, \000$ (0,80) \000, \000, \000, \000, \000, \000, \000, \000, \000, \ \000, \000, \000, \000, \000, \000, \000$ (0,96) \000, \000, \000, \000, \000, \000, \000, \000, \000, \ \000, \000, \000, \000, \000, \000, \000$ (0,112) \000, \000, \000, \000, \000, \000, \000, \000, \000,\ \000, \000, \000, \000, \000, \000, \000$ (0,128) \000, \000, \000, \000, \000, \000, \000, \000, \000,\ \000, \000, \000, \000, \000, \000, \000$ (0,144) \000, \000, \000, \000, \000, \000, \000, \000, \000,\ \000, \000, \000, \000, \000, \000, \000$ (0,160) \000, \000, \000, \000, \000, \000, \000, \000, \000,\ \000, \000, \000, \000, \000, \000, \000$ (0,176) \000, \000, \000, \000, \000, \000, \000, \000, \000,\ \000, \000, \000, \000, \000, \000, \000$ (0,192) \000, \000, \000, \000, \000, \000, \000, \000, \000,\ \000, \000, \000, \000, \000, \000, \000$ ,则会得到:

awk '{print $0}' file

因此,awk似乎停止在找到的第一个“ ^ @”或“ \ 000”字符处处理文件。

如何避免这种情况?

注意:看来我的 DATA FIELDINFO Cloud_Mask_QA {{{ rank: 2 type: 20 dims: Cell_Along_Swath_1km 2030, Cell_Across_Swath_1km 1354, data: ... (2748620) (0,0) awk

1 个答案:

答案 0 :(得分:0)

gawk似乎可以解决问题,而不是mawkawk通常链接到这两者之一,因此唯一要做的就是安装gawk并使用它代替awk