Tag: grep

你怎么grep一个文件,并获得接下来的5行

我如何grep 19:55文件并获得行1,2,3,4,5? 2013/10/08 19:55:27.471 Line 1 Line 2 Line 3 Line 4 Line 5 2013/10/08 19:55:29.566 Line 1 Line 2 Line 3 Line 4 Line 5

如何使用'find'命令显示修改的date时间?

使用find命令,我可以显示具有多个级别的目录名称。 以下命令显示深度为2的/varpath下的所有目录: find /var -maxdepth 2 -type d; 结果显示: /var /var/log /var/log/sssd /var/log/samba /var/log/audit /var/log/ConsoleKit /var/log/gdm /var/log/sa 使用stat命令,我可以find修改的date时间: stat /var/log/samba | grep 'Modify:' 结果是: Modify: 2014-01-02 11:21:27.762346214 -0800 有没有办法把这两个命令结合起来,这样目录就会被修改date时间?

grep只有文本文件

find . -type f | xargs file | grep text | cut -d':' -f1 | xargs grep -l "TEXTSEARCH" {} 这是一个很好的解决scheme? 用于仅在文本文件中recursion地查找TEXTSEARCH

egrep和grep的区别

我有一个有关grep和egrep在unix 。 正如我最近在unix研究shell commands ,我想知道grep和egrep之间有什么区别。 我发现我们可以用正则expression式来使用grep和egrep。 但是,我发现这两个命令之间有些不同: 对于^ ,grep和egrep具有相同的含义,即在一开始就发现这些行包含给定的东西。 但是,对于| ,grep,在前面没有反斜杠| ,意味着|字符 ,如果我在它前面放一个斜杠,就会发现find这行的特殊含义,它包含前面和后面的东西。 但是,egrep,这是相反的。 | 具有grep和\|的后面的意思 在使用它时有grep的以前的意思。 其他人可以解释一下为什么?

R:如何让grep返回匹配,而不是整个string

我有什么可能是一个真正愚蠢的问题在R问题。 道歉,因为这似乎应该是如此容易 – 我显然只是失去了一些东西。 我有一个string的vector,我们称之为alice 。 一些alice打印出来如下: T.8EFF.SP.OT1.D5.VSVOVA#4 T.8EFF.SP.OT1.D6.LISOVA#1 T.8EFF.SP.OT1.D6.LISOVA#2 T.8EFF.SP.OT1.D6.LISOVA#3 T.8EFF.SP.OT1.D6.VSVOVA#4 T.8EFF.SP.OT1.D8.VSVOVA#3 T.8EFF.SP.OT1.D8.VSVOVA#4 T.8MEM.SP#1 T.8MEM.SP#3 T.8MEM.SP.OT1.D106.VSVOVA#2 T.8MEM.SP.OT1.D45.LISOVA#1 T.8MEM.SP.OT1.D45.LISOVA#3 我希望grep给出在这些string中出现的D之后的数字,条件是包含“LIS”的string和空string或其他。 我希望grep能够给我一个捕获组的价值,而不是整个string。 这是我的R风味的正则expression式: pattern <- (?<=\\.D)([0-9]+)(?=.LIS) 没有太复杂。 但为了得到我所追求的,而不是仅仅使用grep(pattern, alice, value = TRUE, perl = TRUE)我正在做下面这些,看起来很糟糕: reg.out <- regexpr( "(?<=\\.D)[0-9]+(?=.LIS)", alice, perl=TRUE ) substr(alice,reg.out,reg.out + attr(reg.out,"match.length")-1) 现在看来,这看起来不是太难看,但是为了使这件事情变得琐碎起来,搞得一塌糊涂,实在令人尴尬。 任何人有关如何正确地去做这个指针? 奖金标志指向我的网页,解释我与$ , @和attr访问之间的区别。

你可以批量编辑在grep中返回的所有文件?

我想批量编辑一大堆在grep中返回的文件。 (我知道,我应该在sed上更好)。 所以如果我这样做: grep -rnI 'xg_icon-*' 我如何将所有这些文件转换为vi?

Grep和Python

我需要一种使用grep通过Unix命令行的正则expression式来search文件的方法。 例如,当我input命令行时: python pythonfile.py 'RE' 'file-to-be-searched' 我需要在文件中search正则expression式'RE'并打印出匹配的行。 这是我有的代码: import re import sys search_term = sys.argv[1] f = sys.argv[2] for line in open(f, 'r'): if re.search(search_term, line): print line, if line == None: print 'no matches found' 但是,当我input一个不存在的单词时, no matches found的单词

如何统计目录中所有文件中单词的出现次数?

我正在计算整个目录中的特定单词出现次数。 这可能吗? 例如,有一个目录有100个文件,其中的所有文件可能都有“aaa”这个词。 如何计算该目录下所有文件中的“aaa”数? 我尝试了这样的: zegrep "xception" `find . -name '*auth*application*' | wc -l 但它不工作。

在退出脚本之前等待后台进程完成

在退出我的脚本(TCL / Bash)之前,如何确保所有的后台进程都已经完成了执行。 我正在考虑将所有的后台进程pid写入一个pid文件。 然后在结束pgrep pidfile,看看有没有进程在我退出前还在运行。 有没有更简单的方法来做到这一点? 有没有一个TCL具体的方式来做到这一点?

只蜘蛛网站和返回url

我正在寻找一种伪蜘蛛网站的方式。 关键是我实际上不需要内容,而是一个简单的URI列表。 我可以使用–spider选项使用Wget合理地接近这个想法,但是当通过grep输出pipe道时,我似乎无法find使它工作的正确的法术: wget –spider –force-html -r -l1 http://somesite.com | grep 'Saving to:' grepfilter似乎对wget输出没有任何影响。 我有什么不对吗,还是有另一个工具,我应该尝试更适合提供这种有限的结果集? UPDATE 所以我只是发现离线,默认情况下, wget写入到stderr。 我错过了在手册页(事实上,如果它在那里,我还没有find它)。 一旦我input返回标准输出,我接近我所需要的: wget –spider –force-html -r -l1 http://somesite.com 2>&1 | grep 'Saving to:' 如果有的话,我仍然会对其他更好的方法感兴趣。