我想通过模式之间的隐式AND获得多模式匹配,即相当于在一个序列中运行几个 grep:
grep pattern1 | grep pattern2 | ...
Run Code Online (Sandbox Code Playgroud)
那么如何将其转换为类似的东西?
grep pattern1 & pattern2 & pattern3
Run Code Online (Sandbox Code Playgroud)
我想使用单个 grep,因为我正在动态构建参数,因此所有内容都必须放在一个字符串中。使用过滤器是系统特性,而不是 grep,所以它不是它的论据。
不要将此问题与:
grep "pattern1\|pattern2\|..."
Run Code Online (Sandbox Code Playgroud)
这是一个OR多模式匹配。
如何将条件 OR 引入 grep?例如,为(JPEG 或 JPG)搜索文件类型,然后仅将这些文件发送到照片文件夹中。例如。我知道如何将文件发送到我想要的位置,并获取文件类型,我只需要 grep 部分的一些帮助。
我在 OS X 上,IMO 似乎已经修改/定制了 *nix 实用程序,而不是我在 *nix 环境中习惯的。所以希望答案可以尽可能通用/便携。
我有一个包含“then”和“there”的文件。
我可以
$ grep "then " x.x
x and then some
x and then some
x and then some
x and then some
Run Code Online (Sandbox Code Playgroud)
我可以
$ grep "there " x.x
If there is no blob none some will be created
Run Code Online (Sandbox Code Playgroud)
如何在一次操作中同时搜索两者?我试过
$ grep (then|there) x.x
Run Code Online (Sandbox Code Playgroud)
-bash: 意外标记附近的语法错误`('
和
grep "(then|there)" x.x
durrantm.../code
# (Nothing)
Run Code Online (Sandbox Code Playgroud) 我有一个文本文件,我想使用 Unix 命令(我不关心哪个)来打印包含中文字符或包含字符串 ### 的行。
\n这个答案有一个 grep 命令,可以打印出包含汉字的行
\ngrep -P \'[\\p{Han}]\' filename.txt\nRun Code Online (Sandbox Code Playgroud)\n我理解这是一个 Perl 正则表达式。这会打印出包含 ### 的行:
\ngrep \'###\' filename.txt\nRun Code Online (Sandbox Code Playgroud)\n但我不知道如何组合(或)它们。如果我grep -e \'###\' -P \'[\\p{Han}]\'按照我的预期,这个答案会概括,它不会打印出包含汉字的行。
问题:如何使用 Unix 命令打印包含汉字的行或包含 ### 的行?
\n哦,万一有帮助,如果文件包含
\n\xe4\xb8\xad\xe6\x96\x87 keep this line\n### keep this line\ndon\'t keep this line\nRun Code Online (Sandbox Code Playgroud)\n它应该输出
\n\xe4\xb8\xad\xe6\x96\x87 keep this line\n### keep this line\nRun Code Online (Sandbox Code Playgroud)\n 如何使用 grep 在文本文件中搜索单词或其他单词的出现?
我想过滤所有行的 apache 日志文件,包括“bot”或“spider”
cat /var/log/apache2/access.log|grep -i spider
Run Code Online (Sandbox Code Playgroud)
只显示包含“spider”的行,但如何添加“bot”?