试图用grep的日志文件行太长错误(line too long error when trying

2019-10-17 07:17发布

当我在shell提示符下键入:

grep -r  "ambiguously" .

我得到的错误:

grep的:行太长。

基本上,当前目录是一个日志目录,我试图找到在所有的日志文件中的SQL错误“含糊不清的列”。

可是为什么我的错误? 这些文件的大小非常巨大的,是主要的原因是什么?

Answer 1:

你应该试试

find -type f -exec grep PATTERN {} +

在命令行限制可以在与Linux中找到

$ getconf ARG_MAX

与* BSD

$ sysctl kern.argmax

见http://www.cyberciti.biz/faq/argument-list-too-long-error-solution/走得更远。



Answer 2:

“grep的:行太长”并不一定意味着该文件或文件,其中的行是“太长”包含你正在寻找的字符串。

你可能也想尝试:

因为我在find /var/log -type f ; 不要回声$我&& grep的模式$ I; 做|三通/tmp/output.txt

要么

因为我在find /var/log -type f ; 不要回声$我&& grep的模式$ I; DONE

这取决于你有多少搜索文件通过。

该“行太长”将会出现在标准错误,你会看到它在屏幕上,如果你可以滚动回来。 这可能是“lastlog的”。



Answer 3:

你的错误,因为grep的是在文件中可以通过命令行获得的数量限制。

尝试

ls -b . | xargs grep "ambiguously"

编辑:这个解决方案是唯一有效的,如果你不需要它是递归



文章来源: line too long error when trying to grep log files
标签: file unix grep