Questions tagged «grep»

对于与grep有关的问题,这是一种用于搜索文件中文本模式的命令行工具。对于有关grep本身的问题或因使用grep命令行工具引起的问题,请使用此标签。

2
对单词边界感到困惑
我已经对此进行了很多研究,但仍不清楚。这是什么字边界是什么意思?它有什么作用? 因此,例如,有人可以向我解释此命令吗? egrep '\b[A-Z]+\b' filename.sh

3
用不同的颜色标记出现的关键字
我有一个程序,它吐出一个输出stdout像: [OK] Something is ok [OK] Something else is also ok [FAIL] This does not look good [FAIL] Neither does this [OK] At least this is fine 为了更容易发现输出失败,我想FAIL用红色标记关键字的出现而不会丢弃其他消息。如果我还可以OK用绿色:) 突出显示关键字,那就太好了。 进行管道连接egrep --color FAIL只会显示FAIL关键字所在的行。
13 grep  colors 

3
在线grep练习?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 9个月前关闭。 有没有在线grep教程,其中包含一些用于执行练习的在线工具?例如,拥有一些预定义的文本样本并被告知要查找什么模式等等?对于在可预测的环境中进行grep的实际学习而言,这将是一个非常有用的工具。

3
我如何使用tee重定向到grep
我没有使用tee的丰富经验,所以我希望这不是很基本。 查看此问题的答案之一后,我遇到了一个奇怪的行为tee。 为了输出第一行和找到的行,我可以使用以下命令: ps aux | tee >(head -n1) | grep syslog USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND syslog 806 0.0 0.0 34600 824 ? Sl Sep07 0:00 rsyslogd -c4 但是,我第一次运行此命令(在zsh中)时,结果顺序错误,列标题位于grep结果的下方(但是,此操作不再发生),因此我尝试在以下位置交换命令: ps aux | tee >(grep syslog) | head -n1 USER PID %CPU %MEM VSZ …



3
正确的正则表达式在grep中不起作用
我有这个正则表达式: (?<=prefix).*$ 它返回字符串“ prefix”之后的任何字符,并且在任何在线正则表达式引擎(例如https://regex101.com)上都能正常工作。问题是当我在bash中使用该正则表达式时: grep '(?<=prefix).*$' <<< prefixSTRING 它不匹配任何东西。为什么该正则表达式不适用于grep?

2
使用grep查找一行中的最后一项
我正在尝试使用grep将最后一个单词或短语用于特定模式。在此示例中,它是从最后一个逗号到行尾的: Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value 因此该行的期望输出将是“超值”。所有行的长度也不同,但是在最后一个单词之前总是有一个逗号。 基本上,我只想从最后一个逗号输出到行尾。谢谢!



7
如何grep netcat输出
我正在尝试grep的实时文本流netcat,但是对我来说不起作用: netcat localhost 9090 | grep sender 什么也不会返回,但是我确定应该会返回。 如果我将netcat输出重定向到文件并添加一些延迟(模拟真实环境),则它可以工作: $ (sleep 5; cat netcat_output; sleep 5) | grep sender {"jsonrpc":"2.0","method":"GUI.OnScreensaverDeactivated","params":{"data": "shuttingdown":false},"sender":"xbmc"}} 我也尝试添加--line-buffered但没有成功。 我做错了什么? 编辑: 我注意到与相同的问题sed,输出为空。 但是,例如,hexdump将文本实时转换为十六进制: $ netcat localhost 9090 | hexdump -C 00000000 7b 22 6a 73 6f 6e 72 70 63 22 3a 22 32 2e 30 22 …
13 grep  netcat 

3
删除单词中的最后一个字符,但前提是该字符存在-以bash开头
仅在有最后一个字符的情况下如何删除? 输入: OpenOffice.org/m openOffice.org/ozm 人 Pfg。 菲尔 教授 分别 根/米 盎司/盎司 所需的输出: OpenOffice.org openOffice.org 佩尔斯 聚乙二醇 菲尔 教授 回应 伦斯特 伦斯特 到目前为止,我只剩下了点,但不幸的是最后一个sed命令也删除了字母g: $ cat filename | grep "\." | cut -d"/" -f1 | sed 's/.$//'

3
我可以缩短此筛选器以找到100G以上的磁盘大小吗?
我的目标是从lsblk获得大于100G的磁盘。 我有工作,但是很尴尬。我敢肯定它可以缩短。通过使用与lsblk完全不同的东西,或者我可以直接使用awk过滤人类可读的数字。 这是我汇总的内容: lsblk | grep disk | awk '{print$1,$4}' | grep G | sed 's/.$//' | awk '{if($2>100)print$1}' 它仅输出大于100G的磁盘的sdx和nvmexxx部分。正是我所需要的。 我很满意,但渴望向您学习更多
12 awk  grep  disk  lsblk 

1
使用grep时屏幕上出现奇怪的符号?
知道是什么原因造成的吗?如果不使用grep,则唯一显示的内容是ISO代码和空白。 使用的软件 命令: ./trans --id --input /path/to/txt | grep ISO | grep [a-z] root@box /test # alias grep alias grep='grep --color=auto' root@box /test # type grep grep is aliased to `grep --color=auto' 正常输出:

1
为什么将1250个字符串与90k模式匹配如此之慢?
我的字符串是文件路径,例如s/14/11/13/15/n7ce49B_235_25ed2d70.jpg;我的模式很简单,都喜欢n7ce49B_.+。 我跑GNU grep 2.6.3下的Debian 6.0.10对戴尔DL360G7服务器(我说出来,只是给这台机器性能比较的意义上)与15K硬盘,而这个命令:time LC_ALL=C grep -E -f path_to_patterns_file path_to_strings_file只是无法完成-服务器交换太差。如果使用20k模式,则需要3个多小时。 在我看来,这是不合理的。 每个注释请求都有以下文件:文件路径 20k个模式 还可以使用以下方法测试和调整输入线和图案的数量: xxd -p /dev/urandom | fold -sw 100 | head -n 1250 | grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000)
12 linux  grep 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.