linux - 如何使用 grep 命令搜索多个模式?

标签 linux bash grep

<分区>

我正在学习使用 grep,我尝试使用以下命令在 /var/log/messages 文件中查找条目,但出现错误:

grep "Oct 23 21:22:44" | "80" /var/log/messages

我得到了这个错误。比我尝试以下并用单引号替换双引号:

grep 'Oct 23 21:22:44' | '80' /var/log/messages

这也没有用。为什么它是错误的,因为我们可以使用管道搜索多个模式! 是不是因为10月23日21:22:44和80在不同的地方!

80和日期在文件中的顺序不同!

最佳答案

这个语法:

grep "Oct 23 21:22:44" | "80" /var/log/messages

相当于运行 grep 并将输出传递给名为 80 的文件。

一种方法你需要的是启用-E选项(--extended-regexp)能够使用|作为-是这样的:

grep -E "Oct 23 21:22:44|80" /var/log/messages

关于linux - 如何使用 grep 命令搜索多个模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40442978/

相关文章:

javascript - 从 JavaScript 访问 Linux 诊断信息

linux - ssh key 中的命名是否重要

linux - 远程检查 linux 中是否存在所有文件?

regex - grepping shell脚本中包含特殊字符的变量

java - 解决损坏的符号链接(symbolic link)而不检查是否存在

Linux 中的 Swift 定时器

linux - 查找文件并在同一目录中进行备份

linux - Shell脚本不从输入文件中获取参数

mysql - 使用 tac、grep 和 sed 从 MySQL 转储中提取表...反向

Bash grep 命令开始于或结束于