grep 是 Linux 中最常用的命令之一。我觉得它的基本功能是突出显示您在输出行上搜索的字符串。这可以通过 --color 选项来实现。
每次输入 --color 都很烦人,而且效率低下。有什么方法可以将 grep 更改为 grep --color 的行为。
我尝试编写一个名为grepd的小脚本并将其添加到我的 PATH 变量中。但是该脚本不适用于输入grepd 。请提出任何建议。
#!/bin/bash
grep --color $1 $2
Run Code Online (Sandbox Code Playgroud) 我需要类似于grep -Aand grep -Bbut 字符的东西。换句话说,我有一个非常长的文件,例如:
[thousands of characters] mytext [thousands of characters]
Run Code Online (Sandbox Code Playgroud)
如果我这样做grep mytext file,我不想要完整的行,因为如果我将它输出到文件中,它会变得太难阅读并导致一个巨大的文件。grep -o对我不起作用,因为它只返回mytext并且我需要在匹配项周围看到 X 个字符。所以想象一个假选项-Y:
$ grep -Y mytext file
Pz8mytextgxe
sd@mytext.com
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
我有一个有几行很长的文件。我想 grep 一个可能在文件中出现多次的字符串,包括可能不止一次出现在一行中。
$ cat 2014-11-03.json | grep 218
Run Code Online (Sandbox Code Playgroud)
这会产生不可读的输出。太多了。
$ cat 2014-11-03.json | grep -o 218
Run Code Online (Sandbox Code Playgroud)
这削减太多了。它只显示匹配的模式,没有任何上下文。
基本上,我想要像这样的输出
... <category_id>218</category_id> ...
Run Code Online (Sandbox Code Playgroud)
(是的,这是 XML,但我不想解析 XML。我只想输出匹配的字符串,两边各有几个字符。只有几个字符,而不是整行。)
Grep 似乎有选项可以只显示匹配的字符串,或者在其整行上下文中显示匹配的字符串(默认行为),或者在前后几行的上下文中显示匹配的字符串,但我找不到选项在前后几个字符的上下文中显示匹配的字符串。
$ cat 2014-11-03.json | tr ' ' '\n' | grep 218
Run Code Online (Sandbox Code Playgroud)
这并不理想:只要有问题的文件在大致正确的位置有空格,它就可以工作。这次它对我有用,但不能保证它会再次出现。
/var由于在 处挂起,我在搜索时遇到了麻烦/var/run。我试图排除/var/run,但它没有产生预期的结果:
$ sudo grep -IR --exclude-dir="/var/run" '45.78.157.165' /var | egrep -v '(audit|access)'
/var/log/secure:Jun 21 14:08:34 cryptopp sshd[19729]: error: Received disconnect from 199.91.135.157: 3: com.jcraft.jsch.JSchException: reject HostKey: 45.78.157.165 [preauth]
/var/log/secure-20160626:Jun 21 14:08:34 cryptopp sshd[19729]: error: Received disconnect from 199.91.135.157: 3: com.jcraft.jsch.JSchException: reject HostKey: 45.78.157.165 [preauth]
/var/log/secure-20160626:Jun 21 14:08:34 cryptopp sshd[19729]: error: Received disconnect from 199.91.135.157: 3: com.jcraft.jsch.JSchException: reject HostKey: 45.78.157.165 [preauth]
grep: /var/run/saslauthd/mux: No such device or address
grep: /var/run/dbus/system_bus_socket: No such device or …Run Code Online (Sandbox Code Playgroud) 在 Microsoft Word 中使用 Grep?
我想从 Word 文档中提取具有给定字符串的所有行。在 unix 世界中...... grep 做到这一点没有任何故障。Windows 对我来说不太明显。
有没有一种简单的方法来打印所有非ASCII字符和它们使用命令行实用程序,如在文件中出现的行号grep,awk,perl,等?
我想将文本文件的编码从 UTF-8 更改为 ASCII,但在此之前,希望手动替换所有非 ASCII 字符实例,以避免文件转换例程影响的意外字符更改。
[Computer]$ grep "foo|bar" filename
Run Code Online (Sandbox Code Playgroud)
我知道上面的命令应该返回文件名中存在“foo”或“bar”的每一行。手册页确认 | 作为正则表达式或符号,代码独立用于“foo”和“bar”。我错过了什么?
我想知道ack_enabled not defined特定文件中是否存在all_defs.txt并返回某些内容,通过它我可以了解字符串是否存在。
谁能告诉我如何做到这一点?
我正在缩小文件中搜索一些关键字。显示这些缩小的内容没有意义。我如何使用 ack-grep 'SEARCH_WORD' 并仅显示匹配的文件名