我使用以下语法来查找IP地址 /etc
(Dennis Williamson在超级用户网站上的回答)
但我得到的消息是"grep:line too long".
有人知道如何忽略这条消息以及为什么我会这样做?
grep -Er '\<([0-9]{1,3}\.){3}[0-9]{1,3}\>' /etc/
grep: line too long
Run Code Online (Sandbox Code Playgroud)
Sho*_*rin 23
find/xargs解决方案对我不起作用,但导致了同样的错误.
我通过使用-Igrep选项(忽略二进制文件)解决了这个问题.在我的情况下,搜索文件列表中必须有一个二进制文件没有换行符,所以grep尝试读取一个太大的巨大行.这是我对这个错误意味着什么的猜测.
我从以下网址获得了这个想法:http://web.archiveorange.com/archive/v/am8x7wI0r0243prrmYd4
当然,如果文本文件的行太长,这可能对您不起作用.
使用find构建grep文件列表,
find /etc -type f -print0 | xargs -r0 grep -E '\<([0-9]{1,3}\.){3}[0-9]{1,3}\>'
Run Code Online (Sandbox Code Playgroud)
通常,find是一种更灵活的遍历文件系统和为其他程序构建文件列表的方法.