Articles of grep

在1.2GB文本文件上达到了错误或者限制?

大文件尾随grep产生不正确的结果,见下面的certificate。 该文件是1.2GB大,但grep应该处理它作为一个stream,所以哪里可能是一个问题? root@condor1796 /home/glassfish/apache-tomcat-8.5.5/logs # tail -n 20000 catalina.out | grep "Deploy" 10-Jan-2017 02:26:48.011 INFO [www.numbeo.com-startStop-2] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /home/glassfish/apache-tomcat-8.5.5/appBaseLivingCost/ROOT.war 10-Jan-2017 02:26:49.850 INFO [www.numbeo.com-startStop-2] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /home/glassfish/apache-tomcat-8.5.5/appBaseLivingCost/ROOT.war has finished in 1,839 ms 10-Jan-2017 02:28:56.096 INFO [www.numbeo.com-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /home/glassfish/apache-tomcat-8.5.5/appBaseLivingCost/ROOT.war 10-Jan-2017 02:28:56.718 INFO [www.numbeo.com-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of […]

法律发现 – 如何search关键字的.eml文件,并将结果复制到macOS / Unix上的另一个文件夹?

我有一个Kerio Connect邮件服务器,它将所有电子邮件以相对标准的邮件假脱机文件夹结构保存为原始的.eml文件。 我的任务是对关键字和电子邮件地址的某些用户邮箱执行关键字search。 然后我需要将find的文件复制到另一个文件夹。 文件夹结构将如下所示: mail example.com user1 INBOX Sent Items etc user2 INBOX etc 困难在于,作为.eml文件的电子邮件在每个文件夹中都用一个序列号命名 – 所以如果在user1的收件箱里find一个名为00000123.eml的电子邮件,并且在他们的已发送邮件中有同名的电子邮件,其中的关键字,我不希望一个复制在另一个的顶部。 我还需要执行一些不区分大小写的关键字search,以便search“关键字”并将其与关键字和关键字以及KEYWORD进行匹配。 我认为下面的命令会做我想做的事情,但是我不是100%确定的,而且我正在运行这个大约100 GB的eml文件,所以我想确保它在运行之前都是正确的。 grep -i -r -l -e "user1@example.com|anotheruser@example.com|keyword1|anotherkeyword|evenmore" /usr/local/kerio/mailserver/store/mail/example.com/user1/ | xargs -I{} rsync -Rv {} /Volumes/Data/Email\ Discovery/201706/user1/ 根据我的统计,这将做一个不区分大小写的search(-i)recursion(-r)打印文件名(-l)并使用正则expression式(-e),然后将结果传递给rsync,它将recursion地复制到目标文件夹和(希望)保持相同的文件夹结构。 有没有更有效的方法来做到这一点?

颜色匹配,其他只是显示

我只是试图让grep显示所有的行,但匹配的应该有匹配的文字着色。 具体来说,我需要这样的东西: tail -f file.log | grep –color Exception 不幸的是我没有看到任何grep的选项,将同时显示不匹配的行和匹配的行(与颜色)。 有没有其他的工具在Unix / Linux的这将允许这个?

在macosx上重复curl + grep偶尔会给出不好的结果?

运行macosx 10.6.2,我看到一些非常奇怪的行为,用一个重复调用curl -o(file)的脚本,然后对其中的某个string进行grep。 偶尔grep返回1(找不到),当我期望0(find)。 这是脚本… # do this 1000 times for ii in `cat count.txt`; do rm -f a.txt rm -f e.txt curl –fail –stderr e.txt -j -o a.txt -s $MYURL if [ -e a.txt ] ; then # Occasionally a.txt doesn't finish writing on time grep "login-url" a.txt >/dev/null LASTERR=$? echo $LASTERR is lasterr […]

注释符合某种模式的所有行

我需要为当前目录中的每个文件和任何子目录(recursion地)注释掉包含“dlclose”的所有行。 鉴于我能从各种指南中find的东西,这是我迄今为止最好的猜测。 grep -lIR "dlclose" . | grep -v ".svn" | sed -i 's/.*dlclose.*/\/\/&/g' 两个greps成功find了我想要更改的所有文件,但是sed声明了一个unterminated s command 。

如何在FreeBSD中find包含指定string的文件?

我正在寻找方法来查找包含指定string文本的文件。 它应该尽可能快,但不是那么重要。 我正在阅读手册,我已经build立了这样的东西: grep my_string * -r ,它可以工作,但如果有很多目录要search。 有没有其他方法可以在FreeBSD中find包含指定string的文件?

grep,计数和sortingiptableslogin获取IP数量和DPT?

我怎么能grep计数和sortingiptables日志获取IP数量和DPT? 就像我用这个线索来获得最高的IP数量。 egrep -w "Invalid Packet" ipfirewall.log | grep -o '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9]*' | sort | uniq -c | sort -r -n | head 但是如何通过DPT获取IP? 所以这将是: 250 192.168.1.1 DPT=3306 150 192.168.1.2 DPT=445 50 192.168.1.3 DPT=23 20 192.168.1.4 DPT=22 日志格式: Jul 19 04:50:28 server1 kernel: IN=eth0 OUT= MAC=xx:xx SRC=124.153.186.56 DST=xx.xx.xx.xx LEN=60 TOS=0x00 PREC=0x00 TTL=50 ID=19312 DF PROTO=TCP SPT=4379 […]

recursiongrep从/挂起

我在多个平台上使用了以下grepsearch模式: grep -r -I -D skip 'string_to_match' / 例如在FreeBSD 8.0 , FreeBSD 6.4和Debian 6.0 (squeeze)上。 命令做从根目录开始的recursionsearch,假定二进制文件没有'string_to_match'并跳过设备,套接字和命名pipe道。 FreeBSD 8.0和FreeBSD 6.4使用GNU grep版本2.5.1,而Debian 6.0使用GNU grep 2.6.3版本。 在FreeBSD 6.4上 ,打印到stderr的最后一个信息是“grep:/ dev / cuad0:Device busy” 。 在这个grep只是按照“top -m io -o total”闲置的时候grep的I / O使用不存在。 在FreeBSD 8.0下同样的行为是正确的,但是在我的安装中发送到stderr的最后一个信息是“grep:/tmp/.wine-0:Permission denied” 。 在Debian的情况下,最后输出到stderr是“grep:/ proc / sysrq-trigger:input/输出错误” 。 如果我在Debian下查看grep进程的I / O使用情况,那么下面是: root@Debian:~# iotop -bp 22439 Total […]

基本正则expression式与扩展正则expression式的含义

我认为*意味着在基本或扩展正则expression式之前的零个或更多的字符或类。 为什么echo hello| grep '*llo' echo hello| grep '*llo'失败,但echo hello |egrep '*llo'成功了吗?

Centosfind二进制文件中的文件

我已经运行了一个命令,在服务器上的文件中find一个string,如下所示: cd / grep -r "string to be found" * 服务器返回这样的结果 Binary file dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:0:0-part1 matches Binary file dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:0:0 matches 据我所知,这些是保存在RAIDarrays上的实际存储的文件(请纠正我,如果我错了)。 我怎样才能find我的比赛所在的位置? 有没有更快的解决scheme比运行“grep”所有服务器的文件? 感谢您的时间!