Questions tagged «grep»

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


9
grep文件的开头?
在linux shell中,我要确保所有特定文件集均以开头<?,并且具有确切的字符串,而没有其他字符。如何grep或使用其他表达“文件开头”的文件? 编辑:我是通配符,并且head没有在同一行上提供文件名,所以当我grep它时,我看不到线名。另外,"^<?"似乎没有给出正确的结果;基本上我得到这个: $> head -1 * | grep "^<?" <? <? <? <? <? ... 所有文件实际上都很好。

6
使用索引使grep更快?
我发现自己一遍又一遍地重复相同的代码库。虽然效果很好,但是每个命令大约需要10秒钟,因此我正在考虑提高其速度的方法。 那么可以grep使用某种索引吗?我知道索引对于复杂的正则表达式可能无济于事,但我主要使用非常简单的模式。这种情况下是否存在索引器? 编辑:我了解ctags之类的东西,但我想进行全文搜索。

3
我如何递归grep目录中每个文件的前50行?
我需要搜索目录及其子目录中每个文件的前50行。 这将执行递归部分,但是如何限制每个文件的前50行呢? grep -r "matching string here" . 其中一些文件很大,我只希望它们在前50行中匹配。我试图通过不在某些文件中搜索兆字节的二进制数据来加快该过程。
10 linux  unix  grep 



3
如何获得Bash Shell历史记录范围
如何获取/过滤特定范围内的历史记录条目? 我的历史记录文件很大,经常使用 history | grep somecommand 现在,我的记忆力很差,我还想看看在输入命令前后我还做了些什么。 现在我这样做:得到比赛4992 somecommand,然后说,然后我 history | grep 49[0-9][0-9] 通常这已经足够好了,但是我宁愿做得更精确,那就是看到从4972到5012的命令,即之前的20条命令和之后的20条命令。 我想知道是否有更简单的方法?我怀疑自定义脚本是正确的,但是也许其他人以前做过类似的事情。
9 linux  bash  history  grep 

1
/ proc和原始磁盘上的`grep`是个坏主意的确切原因是什么?
我grep -r "searchphrase" /今天跑了,但是没有用。我做了一些研究,发现find / -xdev -type f -print0 | xargs -0 grep -H "searchphrase"是正确的方法。 我收集了/proc磁盘,这些磁盘/dev/sda1是导致grep不成功的元凶。 我希望了解有关“为什么”的一些深厚的技术背景。我认为/proc遍历中的某些链接会创建无限循环,并且我读到的原因更多,但没有具体原因。 此外,当原始磁盘被grepped时会发生什么?二进制数据(/dev/sda1据我所知可以访问吗?)不能被解释,因为只有mount具有文件系统类型的二进制文件才能使磁盘中的数据易于理解?因此,仍然可以对二进制字符串进行grep吗?

2
咧嘴笑,ack和rak比较
使用过 ACK 一段时间以来,我发现它比我的开发目的要好得多。但后来我听说过 RAK 和 微笑 。有没有人使用过这三个并且可以提供比较?
8 grep  ack 

2
Mac OS X终端中的Grep-仅显示一种颜色
我习惯于grep能够为文件名,行号和匹配项本身上色。这三个应该是不同的颜色。这在Linux终端甚至Windows上的MinGW上都可以正常工作,但是在OS X上,即使我设置了GREP_COLOR,我也只能在匹配的结果上获得颜色。 操作系统随附的grep版本是否过旧? 使用Terminal.app的MBA 13“上的10.7.3。

4
Unix grep在长搜索词或短搜索词中都能更快地工作吗?
寻找长或短搜索词是否更快?还是根本影响速度?换句话说,您是否应该使搜索字词尽可能准确? 有超过100 000个文件,每个文件包含20到5000多行数据。通常,grep仅用于查找搜索词的一个实例。 假设搜索词为SEARCHTERM,它将像这样连续显示: NAD+DP+1234567890:92++UNIQUE+NAME+SEARCHTERM++12345+FI' 查找“ SEARCH”或“ SEARCHTERM”是否更快?假设在这种情况下,我们不在乎是否也在其他不相关的行中找到匹配项。 这是我目前的做法: grep NAD+DP 123* | grep SEARCHTERM 但是我仍然觉得它很慢。即使我知道粗略的文件名,通常也需要3-5分钟才能找到数据,这将范围限制为大约10000个文件。 那么,更长或更短的搜索字词会有所帮助吗?据我所知,grep寻找一定长度的单词“块”吗?


4
如何在源文件中grep某些文本?
目前,我正在使用两个命令,我确定必须有更好的方法... wim@wim-acer:~/ffmpeg$ find . -name "*.h" -print0 | xargs -0 grep -i invalid\ preset wim@wim-acer:~/ffmpeg$ find . -name "*.c" -print0 | xargs -0 grep -i invalid\ preset
8 bash  grep  pipe  xargs 


3
正则表达式:不以“模式”开头
我的LIST文件中有很多行,并且只想列出名称不以(或包含)“git”开头的行。 到目前为止,我有: cat LIST | grep ^[^g] 但我想要像: #not starting by "git" cat LIST | grep ^[^(git)] #not containing "git" cat LIST | grep .*[^(git)].* 但这不正确。我应该使用什么正则表达式?
7 regex  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.