Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在awk中的字段中搜索特定字符串_Bash_Text_Awk_Text Processing - Fatal编程技术网

Bash 在awk中的字段中搜索特定字符串

Bash 在awk中的字段中搜索特定字符串,bash,text,awk,text-processing,Bash,Text,Awk,Text Processing,我正在使用Cygwin for Windows在Awk中编写代码。事实上,我对这种语言很陌生。我编写了一个小的一行程序,如果某个字段中有一个特定的字符串,则可以打印整行 $ awk -F '[:,]' '{if($9 == "QueCmd0") print $0 }' #QueCmd0 is the name of the string. “:”和“,”是字段分隔符 该代码对于小文本文件(高达6-7MB左右)工作正常,但当.txt文件较大(约10-15MB)时,该代码不会显示任何输出。我

我正在使用Cygwin for Windows在Awk中编写代码。事实上,我对这种语言很陌生。我编写了一个小的一行程序,如果某个字段中有一个特定的字符串,则可以打印整行

 $  awk -F '[:,]' '{if($9 == "QueCmd0") print $0 }'  #QueCmd0 is the name of the string.
“:”和“,”是字段分隔符

该代码对于小文本文件(高达6-7MB左右)工作正常,但当.txt文件较大(约10-15MB)时,该代码不会显示任何输出。我不知道问题出在哪里

还有什么我应该知道的吗

更新:问题在于文本编码,将编码从unicode更改为UTF-8

awk -F '[:,]' '{if($9 == "QueCmd0") print $0}' 
awk -F '[:,]' '{if($9 == "QueCmd0") print}' 
awk -F '[:,]' '$9 == "QueCmd0" {print}'
awk -F '[:,]' '$9 == "QueCmd0"'
较大文件中没有任何固有的因素会导致awk失败,
你正在使用的操作系统,我不能担保


也许它想要一个较短的版本?

在旁注中,如果您的脚本相当于
“$9==“QueCmd0”
。这就是块在
awk
中的工作方式。您能用整个日志中的一行样本更新问题吗?
awk
在处理大文件时与处理小文件时一样有效。正如伊尼安所说,您需要显示大文件中一行或多行您认为应该打印但没有打印的内容。选择这些行后,您可以单击并将它们添加到问题中。可能大文件中没有任何匹配的行。对不起,感谢大家对这些行感兴趣,问题在于文本编码,代码工作得非常好!是的,出现问题是因为文本是用unicode编码的,而当更改为UTF-8时,unicode可以工作