我是一名Java程序员,也是一名shell脚本新手,我有一项艰巨的任务,要解析千兆字节的日志,查找行中第446个位置有“1”(只有1个没有qout)的行,我可以通过运行这个cat *.log | cut -c 446-446 | sort | uniq -c
来验证字符1是否存在,但我无法提取行并将其打印到输出文件中。
最佳答案
awk '{if (substr($0,446,1) == "1") {print $0}}' file
是最基本的。
您可以在打印功能中使用
FILENAME
将文件名添加到输出中,这样您就可以awk '{if (substr($0,446,1) == "1") {print FILENAME ":" $0}}' file1 file2 ...
第1页
关于linux - 如果某个位置存在字符,则提取整行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43613458/