我发布这个超级用户,但没有采取: https : //superuser.com/questions/832578/how-to-grep-a-continuous-stream-with-paging 我想要一个日志文件,并过滤掉一些不相关的日志条目,比如INFO级别的日志条目。 上面的堆栈溢出的答案让我的一部分的方式: $ tail -f php_error_log | grep -v INFO 我想要的下一个部分是在这个stream中分页,比如less。 lessF +连续stream的作品,但我不能应用于grep。 我怎样才能做到这一点? 自从发布了这个问题后,我发现, less等待EOF出现,并挂起,直到它收到( 源 )。 这解释了为什么试图跟随pipe道不工作。 我剽窃了一个简短的脚本,不经意地做我想做的事情: #!/bin/bash tail -f /data/tmp/test.txt | grep –line-buffered foo > /data/tmp/foo & pid=$! echo $pid sleep 1 less +F /data/tmp/foo kill $pid rm /data/tmp/foo 我相信有可能更优雅地做到这一点,也许与临时文件,自动清理没有直接的互动。
嗨,我在这里的一台HP-UX服务器上。 当recursion地查询目录树时,当树还包含二进制文件时,我遇到了一些问题:grep将它们视为文本文件,并显示包含大量不可打印字符的很长的行。 这不仅使得输出难以扫描,而且还经常使我的terminal无法使用(并且为其标题写入有趣的string)。 GNU-grep有一个选项–binary-file=这将有所帮助(而且它不会为二进制文件打印匹配的行),但是我没有GNU工具可用。 有没有一种方法来模拟GNU-grep的行为,或忽略看起来像二进制文件? 顺便说一句。 如果在perl中有这样一个简单的方法,那也可以。
我正在尝试从文件中提取一段文本以用作下一个命令的input。 这个词总是以“JID_”开始,然后是一些随机数字/字符。 例如 : SelectorSet Selector: InstanceID = JID_001264193601, __cimnamespace = root/dcim 我想给这个string分配一个variables$ JID。 我如何从行中拉出它? sed或grep最好,但任何方法都很好。
我正在使用WebInject (CLI而不是GUI)来testing在线Web服务。 我打算和第三方一起去,直到我find了这个小gem,并意识到我可以拯救… 我想完成的是grep WebInject(Perl脚本)的结果。 如果它find一个模式,然后pipe结果给邮件。 我是新手,不太清楚如何编写评估结果并将其发送到邮件的逻辑。 这是我迄今为止: $ perl webinject.pl | grep'TEST CASE FAILED' 如果grep发现匹配,我只想发送一封邮件,否则不应该发送邮件。 我想用cron设置它以10或15分钟的间隔运行。 作为一个侧面说明,是grep能够抓住匹配模式的前导和尾随字符? 更新1:找出前导线和尾随线(-A#-B#) 非常感谢!
我正在尝试在/ var / log目录中find一些关键字,所以使用 cd / var / log cat * | grep 关键字 我发现这个string在那个目录下,看到它所在的行,但不知道它来自哪个文件。 我怎样才能findstring,并看到它的猫的文件?
我有一个简单的bash脚本,在命令行中运行时可以正常工作,但不能在crontab中运行: #!/bin/bash PATH=/usr/bin:/bin for f in /data/home/cwolff/tmp/*access_log*.txt; do egrep "r:[AZ]+ \S+[^\.\s]{5} " $f >> $f.min done 在crontab中运行时,输出空的* .min文件。 我读了一些像%需要在crontab中转义的字符,但我没有使用它们中的任何一个。
我有一个关于使用更高级的grep,awk,sed的问题。 我有一个专有MTA的日志文件,它包含一个string中的IP,由[redacted]^~xxxx^[redacted]分隔。 到目前为止,我所有的gre,,aw,和se has都没有让我走得很远。 该日志文件中有331520行。 我的目标是简单地刷出ip,然后用sed做一个for循环,以sed的/ $ i / redacted'。 我包括一个日志条目的样本。 如果你们有任何想法,我会非常感激。 Jun 4 15:21:52 host.name mta-name: 13388^~88/CC-04671-FCA0DCF4^~D^~<redactedmessageid>^~@^[email protected]^~redacted.hostname^~000.00.000.000^~port^~esmtp^~^~external_routing_nobounce^~0^~0.51^~subjectofmessage^~250 2.6.0 <redactedmessageid> [InternalId=2178458] Queued mail for delivery
我有几个Drupal网站在我的本地机器上安装WAMP(apache 2.2.17,php 5.3.4和mysql 5.1.53)。 每当我尝试访问pipe理页面,PHP进程似乎死亡。 来自apache_error.log: [Fri Nov 09 10:43:26 2012] [notice] Parent: child process exited with status 255 — Restarting. [Fri Nov 09 10:43:26 2012] [notice] Apache/2.2.17 (Win32) PHP/5.3.4 configured — resuming normal operations [Fri Nov 09 10:43:26 2012] [notice] Server built: Oct 24 2010 13:33:15 [Fri Nov 09 10:43:26 2012] [notice] Parent: Created […]
我正在使用以下命令来获取IP地址的命中数: grep "21/Jul/2013:22" /var/log/ispconfig/httpd/*/access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c | awk '{ if ($1 > 10) print $0}' 这会给我每分钟点击次数。 示例结果是: 181 22:00 330 22:01 253 22:02 240 22:03 202 22:04 232 22:05 195 22:06 174 22:07 251 22:08 287 22:09 […]
编写一个手册来执行yum更新,然后从每个服务器获取一封电子邮件。 我希望电子邮件包含yum.log的更改内容。 IOW,我想要的结果是: grep [today's date] /var/log/yum.log 从每个服务器通过电子邮件发送。 我尝试使用shell:执行grep然后发送邮件: shell: grep '^`date +"%b %d"`' /var/log/yum.log | mail -s "updates applied to `hostname -s` today" [email protected] 它只是发一个空白的电子邮件。 也尝试使用邮件function,但我正在努力转储一个多行variables到消息的正文: – name: test result ignore_errors: yes shell: grep "`date '+%b %d'`" /var/log/messages register: updated – name: mail result mail: to: [email protected] subject: "updates applied to {{ ansible_hostname }} […]