linux - 如果字符出现在特定位置,则提取整行

标签 linux shell unix

我是一名 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/

相关文章:

linux - 如何在日志中发送错误,在 shell 脚本中添加日期?

bash shell脚本中的C++, super 初学者关于调用函数和调试的问题

regex - 查找和删除 xml 文件中的特定标签

c - C 编程中 gcc 命令中 -g 和 -o 选项的使用

c - 使用通配符 ip 的套接字绑定(bind)

bash - 使用 shell 脚本将 tsv 文件中的日期格式从 'm/d/yyyy' 转换为 'yyyy-mm-dd'

linux - 验证字符串并确保它由特定字符组成

Python:os.tmpfile 或 tempfile.mkstemp

ruby - 连接到另一个终端进程?

linux - 我可以使用多少个管道有限制吗?