[英]Problem with awk and (maybe) null characters
我有這個文件,“可能是”二進制文件:
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
,為了查看“不可打印的字符”,我得到:
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,但是如果我執行awk '{print $0}' file
,則會得到:
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似乎停止在找到的第一個“ ^ @”或“ \\ 000”字符處處理文件。
如何避免這種情況?
注意:看來我的awk
是mawk
gawk
似乎解決了問題,而不是mawk
。 awk
通常鏈接到這兩個之一,因此唯一要做的是安裝gawk
並使用它而不是awk
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.