Awk 呆呆地看一行字节解释程序,它不';t将1和01视为相同

Awk 呆呆地看一行字节解释程序,它不';t将1和01视为相同,awk,Awk,我有一个长字节序列形式的输入文件,中间有一些注释。我在底部提供了一个例子 我一直在gawk中寻找一个简单的单行程序,只提取和打印一些行,这在一开始很简单: gawk '$4==01' input.txt 当输入文件中的注释行包含数字“1”(不带前缀0)并提取两行时,此操作失败 如何改进一行代码,使“01”匹配而“1”不匹配? 输入示例: 00000.000 00 3E 01 09 87 00000.000 57 3F 00 09 87 // Total Errors: 1 期望输

我有一个长字节序列形式的输入文件,中间有一些注释。我在底部提供了一个例子

我一直在gawk中寻找一个简单的单行程序,只提取和打印一些行,这在一开始很简单:

gawk '$4==01' input.txt
当输入文件中的注释行包含数字“1”(不带前缀0)并提取两行时,此操作失败

如何改进一行代码,使“01”匹配而“1”不匹配?

输入示例:

00000.000    00 3E 01 09 87
00000.000    57 3F 00 09 87
// Total Errors: 1
期望输出:

00000.000    00 3E 01 09 87
实际产量:

00000.000    00 3E 01 09 87
// Total Errors: 1

我试图在字符串上强制进行比较(见此),但没有运气:
gawk'$4==01''input.txt
gawk'$4'==01''input.txt
这两种方法都只输出
//总错误:1
,与
gawk'$4''==01''input.txt
一种可能的方法是使用regex,但我想有一个更简单的选择:

gawk '$4~/^01$/' input.txt
你可以用

gawk '$4=="01"' input.txt


在您的代码中,
01
的计算结果为
1
,因此返回字段4可以计算为
1
的所有行。用双引号括住
01
将强制执行严格的字符串比较。

使用
gawk'$4==“01”
,请注意,这是我没有想到的排列方式。谢谢,我很乐意接受你的回答。