我是一名 Java 程序员和 shell 脚本的新手,我有一项艰巨的任务来解析数 GB 的日志并查找在该行的第 446 位出现“1”(仅 1 个无引号)的行,我是能够通过运行此 cat *.log | 验证字符 1 是否存在切-c 446-446 |排序 | uniq -c
但我无法提取这些行并将它们打印在输出文件中。
最佳答案
awk '{if (substr($0,446,1) == "1") {print $0}}' file
是基础。
您可以在打印功能中使用FILENAME
将文件名添加到输出中,这样您就可以做
awk '{if (substr($0,446,1) == "1") {print FILENAME ":" $0}}' file1 file2 ...
健康教育
关于linux - 如果字符出现在特定位置,则提取整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43613458/