Awk 呆呆地看一行字节解释程序,它不';t将1和01视为相同
我有一个长字节序列形式的输入文件,中间有一些注释。我在底部提供了一个例子 我一直在gawk中寻找一个简单的单行程序,只提取和打印一些行,这在一开始很简单: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 '$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”
,请注意,这是我没有想到的排列方式。谢谢,我很乐意接受你的回答。