Questions tagged «grep»

grep是Unix命令行实用程序,它在输入中搜索匹配(或不匹配)正则表达式的行并打印结果。使用此标签可查询有关如何使用grep功能,如何编写可与grep一起使用的正则表达式以及一般用法的问题。因为grep现在可以在类似Unix的环境中使用(例如Windows上的Cygwin),所以您也可以使用此标记来解决兼容性问题以及版本和软件环境之间的差异。

2
Grep与上下文相反
我试图用反转匹配grep一个文件,但也不匹配匹配行后面的每一行。 所以我在一个名为的文件中有以下内容testing_grep: aaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbbbb cccccccccccccccccc dddddddddddddddddd llllllllllllllllll dddddddddddddddddd llllllllllllllllll fffffffffffffffff fffffffffffffffff 所以我想匹配除了包含的那些d行以及这样的匹配后的下一行,所以我有以下grep命令: grep -v "d" -A 1 testing_grep.txt 但是,我仍然可以输出所有行,而我需要的只是以下输出: aaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbbbb cccccccccccccccccc fffffffffffffffff fffffffffffffffff 谢谢你的帮助。
1 grep 

2
仅在包含第二个文件的目录中对一个文件中的文本进行grep的简单方法
背景: 我们的进程运行不正确。应该只能在具有“ AAA * .x12”之类的模式的文件上运行。但是,它也正在类似于“ BBB * .x12”的文件上运行。每个目录仅包含AAA类型或BBB类型文件。虽然有一个output.log包含我要查找的数据,但它不包含正在处理的文件的名称。 问题: 我想在大量目录中的文件名中使用grep字符串。但是,我只想查看包含与特定模式匹配的第二个文件的目录。 换句话说,如何只在包含以BBB开头的文件的目录中grep output.log文件,而忽略包含以AAA开头的文件的目录中的output.log文件? 注意:目录名称是序号,不能用于确定它们包含的类型文件
1 grep 

1
从vim搜索转换为sed
我有很长的Latex文档,其中包含很多部分。我想检查文档的所有部分是否都已填写。因此,我会随时搜索以'}'结尾的部分标题,某些空格,然后以'\'开头的下一个部分的内容(这与完美的搜索,但对我来说很好。) 在vim中我使用 /}\_s\\ 哪个工作正常。但是,我正在努力在命令行上复制搜索。 我通常会使用grep,但这是一个多行匹配,因此就可以了。我对sed的经验很少,但是我已经尝试过: sed -e '/\}\s\\/p' file.tex 它给了我一切(大概是因为它正在打印匹配的多行-整个文件) 我如何才能改善此sed命令,使其仅给我例如比赛的第一行?
1 command-line  vim  grep  sed 

1
我想在Apache错误日志中获取唯一条目的计数
查看Apache的日志文件时,会重复出现许多错误消息。我想找出哪些错误消息是最常见的,哪些是唯一的。 我想要一个简单的脚本,可以为我提供许多不同的独特行。 我知道Perl / Python / etc,但是我更喜欢使用内置工具,例如cut/ find/ grep/ sed等。 我可以使用获得一个简单的条目列表sed。下面显示了唯一的错误消息列表: $ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | sort -u Apache configured -- resuming normal operations client denied by server configuration Digest File does not exist request failed 这可以计算出现的次数。它只是没有用,因为它没有显示计数与什么相关: $ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | sort -u | xargs -I{} grep …

1
包含和排除在一个正则表达式中
我们正在使用HP SiteScope系统来监控日志,并在捕获特殊字符串或字符串组合时获取警报。 有一个字段可以放置捕获字符串的正则表达式,但是我想要排除一些我们用reg exp捕获的结果。例如: grep -E '(GOOD_STRING1|GOOD_STRING2)' | grep -v BAD_STRING 需要转换成单个reg exp。像这样的东西: grep -E '(GOOD_STRING1|GOOD_STRING2)!BAD_STRING)' 那可能吗?
unix  shell  regex  grep 

1
在UNIX中执行GROUP BY-like命令
我有一个如下文本文件: 1 2 3 4 5 6 7 8 9 ... n <-- column numbering 1 0 0 1 0 0 0 1 0 ... 0 0 1 0 0 0 0 0 0 0 ... 1 1 0 0 0 0 0 0 1 1 ... 0 0 1 …
grep  awk 

1
为什么没有匹配时grep打印?
$ ps ax | grep 6557 #=> 6582 s003 S+ 0:00.01 grep 6557 但是使用活动监视器快速检查没有使用pid 6557的进程。并且在线的所有内容都表示当没有匹配时grep应该返回0。
bash  grep 

0
适用于Windows的grep
我需要搜索特定字符串的非常大的文件(注册表导出文件)。注册表编辑器无法简单地查看注册表文件,并且此文件太大而无法在文本编辑器中打开而不会影响性能。所以,为此我需要类似的东西grep。我已经grep安装了GnuWin32,但是每当我尝试使用它时,它都会返回“内存耗尽”消息。是否有适用于Windows的简单安装grep软件包?

1
Bash:Grep正则表达式无法正常工作
当这样使用时grep: ps aux | grep 'processname' | awk '{print $2}' 在PIDs与流程processname返回。使用时: ps aux | grep '^processname' | awk '{print $2}' 我正在尝试获取命令行开始的进程processname,但它不起作用。 运行示例流程: processname other_processname 我想获得PID第一个选项,因为这processname是命令的开始。 我也试过使用过-E, -e, -w标志,它们都返回相同的结果。什么不对?
bash  regex  grep 

1
如何在列下grep值
如何grep特定列名称并显示该列下面的值。 样本数据: StandByFile StandByPg StandByLSN StandByRcvBufUsed S0082160.LOG 621668 0x00000C85118BC72D 0% 我想0%在StandByRcvBufUsed列下显示。请注意,该文件包含与上面显示的列不同的其他数据,这意味着不同行中的文件中有不同的列列表。 谢谢 更新: 我的文件具有以下格式,因此列#s不是固定的: HADR Information: Role State SyncMode HeartBeatsMissed LogGapRunAvg (bytes) Standby Peer Async 0 365000 ConnectStatus ConnectTime Timeout Connected Tue May 20 09:34:23 2014 (1400592863) 120 ReplayOnlyWindowStatus ReplayOnlyWindowStartTime MaintenanceTxCount Inactive N/A 0 PrimaryFile PrimaryPg PrimaryLSN S0082160.LOG 621668 0x00000C85118BC72D …
regex  grep  awk 

1
我可以使用gnu grep来搜索无与伦比的parens(和类似的)吗?
我在文本编辑器(emacs)中用MoinMoin Wiki标记语言编写文本文件。当我错误地放置一个特殊标签时,我的整个页面会被错误的格式化 - 或者更糟。我总是关闭我打开它的同一行上的格式元素。 我可以使用gnu grep在一行上找到不匹配的Wiki标签吗?喜欢: <<macroname (params) >> backtick 码 backtick ''斜体的 双引号'' - 可能很难 '''大胆的 三重引号'''- 可能很难 我通常不会嵌套标签。所以没有“粗体代码”或“粗体斜体”。
grep  gnu 


1
这是grep -P中的错误吗?(我好像出现了太多的比赛)
这是我的文件 http://www.zen76171.zen.co.uk/blahsomefile1 这是一个大约1.18MB的文本文件 看看我得到了多少匹配线 用-P C:\blah>grep -P "[^J]*J" blahsomefile1 | wc -l 72383 没有-P C:\blah>grep "[^J]*J" blahsomefile1 | wc -l 51814 无论是-P还是没有-P,都应该没有区别,但是有。-P匹配太多了。 通过这个测试,我应该得到相同的数字'cos我所说的列表匹配xyz的每一行,并在该输出列表中每一行匹配xyz。它没有-P工作。 没有-P没什么好笑的。 C:\blah>grep "[^J]*J" blahsomefile1 | wc -l 51814 C:\blah>grep "[^J]*J" blahsomefile1 | grep "[^J]*J" | wc -l 51814 随着-P事情发生不应该发生.. C:\blah>grep -P "[^J]*J" blahsomefile1 | wc -l 72383 …

1
grep -Ef说'无效字符范围'。再次
这是这个问题的后续内容。差异如下。 这里是foo.txt里面内容的摘录(它是巨大的): ^.{64} /Volumes/Documents - Part 1/July 2009/Mum & Dad/Winter Wonderland [日本].mkv$ ^.{64} /Volumes/Documents - Part 1/March 2004/Mac OS X/Adobe Illustrator Documents/swimming.zip$ 这里是bar.txt里面内容的摘录(也是巨大的): c815bebbc553fdf13b16bc99d417053cbe22c13c714d12cf16e740516a5cdeda /Volumes/Documents - Part 1/July 2009/Mum & Dad/Winter Wonderland [日本].mkv cab951c9779db6d484cec544482e742c75effea61c426264cb47788fddd4999e /Volumes/Documents - Part 1/March 2004/Baseball/Pro Yakyuu.7z 635431114b7d898cfebd78f25b50bfea1f1593c292c15e631377347abba3e0e6 /Volumes/Documents - Part 1/March 2004/Mac OS X/Adobe Illustrator Documents/swimming.zip …
macos  bash  unix  grep 

1
从Excel或带有特定区号的txt文件中获取Grep记录
当我想要所有年份日期为2018年的记录时,我知道如何通过使用下面代码之类的东西来拉动文本文件中的某些记录。下面是我正在处理的示例记录,现在我需要代码来提取特定区域来自文件中数千个10位数电话号码列表的代码。我实际上必须拉几个区号,所以如果可以一次完成所有,那就太棒了。这是我用于年份的代码: grep 2018-01 mca159.182.txt 虽然上面的工作,它不会将这些记录提取到文件,即使我把-o和文件名我希望它创建并放入记录。它仍然只显示2018终端中的所有结果,其中我别无选择,只能复制和粘贴。所以这个提示也会有用,为了让我把结果放到一个新的文本文件中。这是我正在处理的文件格式如下: phone dob size 9546022996 8/7/17 199000 9123842128 8/7/17 199000 所以说我想提取所有10位数的电话号码或实际上整个记录是我想要的,这意味着三列将被导出到一个新文件或至少在屏幕上,对于所有以954,213,909开头的数字。所以,如果工作,那么它会发现上面的第一条记录为匹配。
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.