Questions tagged «grep»

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


2
如何将命令的输出分配给shell变量?
我想将表达式的结果分配给变量并将其与字符串连接,然后回显它。这是我得到的: #!/bin/bash cd ~/Desktop; thefile= ls -t -U | grep -m 1 "Screen Shot"; echo "Most recent screenshot is: "$thefile; 但是输出: Screen Shot 2011-07-03 at 1.55.43 PM.png Most recent screenshot is: 因此,它似乎没有分配给$thefile,而是在执行时被打印。

10
如何使用grep标准错误流(stderr)?
我正在使用ffmpeg获取音频剪辑的元信息。但是我无法重复。 $ ffmpeg -i 01-Daemon.mp3 |grep -i Duration FFmpeg version SVN-r15261, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i386 --extra-cflags=-O2 ... 我检查了一下,将此ffmpeg输出定向到stderr。 $ ffmpeg -i 01-Daemon.mp3 2> /dev/null 因此,我认为grep无法读取错误流以捕获匹配的行。我们如何启用grep读取错误流? 使用nixCraft链接,我将标准错误流重定向到标准输出流,然后grep工作了。 $ ffmpeg -i 01-Daemon.mp3 2>&1 | grep -i Duration Duration: 01:15:12.33, start: 0.000000, …


4
递归grep vs find / -type f -exec grep {} \; 哪个更有效/更快?
在整个文件系统中查找包含字符串的文件中,哪个更有效:递归grep或在exec语句中使用grep查找?我认为find会更有效,因为如果您知道文件扩展名或与文件名匹配的正则表达式,则至少可以进行一些过滤,但是当您仅知道-type f哪个更好时?GNU grep 2.6.3; 查找(GNU findutils)4.4.2 例: grep -r -i 'the brown dog' / find / -type f -exec grep -i 'the brown dog' {} \;
70 grep  find 


2
Grep'OR'正则表达式问题
我正在尝试使用带有正则表达式的grep在文件中查找与2个可能的字符串之一匹配的行。这是我的grep: $ grep "^ID.*(ETS|FBS)" my_file.txt 上面的grep不返回结果。但是,如果我执行以下任一操作: $ grep "^ID.*ETS" my_file.txt 要么 $ grep "^ID.*FBS" my_file.txt 我确实匹配特定的行。为什么我的OR正则表达式不匹配?先谢谢您的帮助!

7
如何从cat输出中读取第一行和最后一行?
我有文本文件。任务-从文件之后获取第一行和最后一行 $ cat file | grep -E "1|2|3|4" | commandtoprint $ cat file 1 2 3 4 5 需要没有cat输出(仅1和5)的此功能。 ~$ cat file | tee >(head -n 1) >(wc -l) 1 2 3 4 5 5 1 也许awk和更短的解决方案存在...
64 bash  shell  sed  awk  grep 

6
使用grep检测行尾的模式
如果我做: $ ls -R .: 4Shared/ Cloud/ ./4Shared: UFAIZLV2R7.part3.rar ./Cloud: UFAIZLV2R7.part2.rar.part UFAIZLV2R7.part1.rar.part UFAIZLV2R7.part4.rar.part 如果我只想列出.rar文件,并且使用grep,它也会向我显示.rar.part文件,这不是我的愿望。 我正在使用find或ls **/*.rar按照该线程中的说明解决此问题,它们工作正常,但我想了解是否可以通过进行操作grep。 我已经尝试过(正在考虑EOL): ls -R | grep ".rar\n" 没有结果。 我认为问题在于发现是否在该行的末尾找到了greping ,但是我不确定。 请在这里帮忙吗?
64 grep 

6
如何将grep搜索的结果传递到新的vi文件中
我grep -e Peugeot -e PeuGeot carlist.txt用来搜索carlist.txt并提取一些项目,我grep -e Peugeot -e PeuGeot carlist.txt | vi想这会通过管道传递给我,但这就是我得到的: Vim: Warning: Input is not from a terminal Vim: Error reading input, exiting... Vim: preserving files... Vim: Finished.
63 grep  vi 

4
使用grep匹配确切的字符串
我有一个文本文件: deiauk 1611516 afsdf 765 minkra 18415151 asdsf 4152 linkra sfsfdsfs sdfss 4555 deiauk1 sdfsfdsfs 1561 51 deiauk2 115151 5454 4 deiauk 1611516 afsdf ddfgfgd luktol1 4545 4 9 luktol 1 我想完全匹配deiauk。当我这样做时: grep "deiauk" file.txt 我得到这个结果: deiauk 1611516 afsdf 765 deiauk1 sdfsfdsfs 1561 51 deiauk2 115151 5454 4 但我只需要这个: deiauk …
63 grep 

1
GNU grep的-X选项的实际用途是什么,为什么没有说明呢?
通过阅读这个问题,我发现GNU grep有一个-X期望参数的选项。奇怪的是,手册页和信息页中都没有提到它。 查看源代码,在--help输出的中间有注释: /* -X is deliberately undocumented. */ 进一步看,似乎该-X matcher选项设置用于正则表达式引擎,matcher是一个 grep,egrep,fgrep,awk,gawk,posixawk和perl(截至2.25版本)。 一些这些值是严格相同的现有选项(即grep -G,grep -E,grep -F和grep -P)。另一方面,这三个awk变体没有相应的选项。 有人知道此选项的实际目的是什么,尤其是对于其中一个正则awk表达式引擎而言?有人可以告诉我为什么没有故意记录吗?
58 grep  options 

3
grep里面少吗?
我目前正在筛选许多不熟悉的日志,以查找一些问题。我看的第一个文件是Events.log,我得到至少三个页面,less这些页面似乎在不同时间显示同一事件-一个看起来相当良性的事件。我想过滤掉此事件,目前我退出less并做类似的事情 grep -v "event text" Events.log | less 现在,这带来了许多其他常见的,无趣的事件,我也想过滤掉这些事件。有什么我可以grep -v 里面的方法less吗?不必做 egrep -v "event text|something else|the other thing|foo|bar" Events.log | less 当查看任何类型的日志文件时,它是一项有用的功能-如果less不是该工具,那么我是否具有其他追求的品质?只是一个less内置样式的查看器grep。
58 bash  grep  logs  less 

2
grep在变量上
假设我有一个变量 line="This is where we select from a table." 现在我想重复一下句子中选择的次数。 grep -ci "select" $line 我尝试过,但是没有用。我也试过 grep -ci "select" "$line" 它仍然不起作用。我收到以下错误。 grep: This is where we select from a table.: No such file or directory
58 shell  grep  string 

9
如何grep表示相同的字符串,但同时有多个文件?
我有一组日志文件需要查看,我想一次在同一文件上搜索特定的字符串是否可以?目前我正在使用 grep -E 'fatal|error|critical|failure|warning|' /path_to_file 如何使用此功能并一次搜索多个文件的字符串?如果这需要编写脚本,那么有人可以提供简单的脚本来执行此操作吗?
57 scripting  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.