Rya*_*n H 33
使用 grep。它就是为此目的而构建的。
要从 /var/log/syslog 的尾部查找包含“cron”的行,只需运行:
tail -f /var/log/syslog | grep cron
Run Code Online (Sandbox Code Playgroud)
由于它通过 stdin 接受任何内容,因此您也可以在任何其他命令的输出中使用它,方法与上述相同(使用 | 符号)。
这里有一些其他的想法,虽然并不那么简单,但可能会提供一些有趣的额外灵活性:
首先,您可以使用 awk 而不是 grep 进行过滤:
tail -f /var/log/messages | awk '/myfilterword/'
Run Code Online (Sandbox Code Playgroud)
其工作原理与使用 的示例完全相同grep。您可以使用 awk 的强大功能对此进行扩展,例如:
tail -f /var/log/messages | \
awk '/myfilterword/ { for (i=6; i<=NF; i++) printf("%s ", $i); printf("\n")}'
Run Code Online (Sandbox Code Playgroud)
这将打印输出的第六个到最后一个字段(字段以空格分隔)
另一个类似的想法是使用 perl 单行代码:
tail -f /var/log/messages | perl -ne "/myfilterword/ and print"
Run Code Online (Sandbox Code Playgroud)
其工作原理完全一样grep。也许您想要一个行号计数器和第 6 个字段?这个怎么样:
tail -f /var/log/messages | \
perl -lane "/myfilterword/ and printf \"%6d %s\n\",++\$a,\$F[6]"
Run Code Online (Sandbox Code Playgroud)
显然,所有这些事情也可以使用其他工具来完成,但我想说明的是,有一些有趣的方法可以使用更通用的语言,例如 awk 或 perl。
| 归档时间: |
|
| 查看次数: |
8100 次 |
| 最近记录: |