Articles of grep

grep命令从文件中提取数据

我有一个文件,它有这条线: $n22(s:Tstring) = "252"; 我试图写一个shell命令来grep文件,只返回252.这是我迄今为止: grep -o '$n22(s:Tstring).*;' /etc/test/testfile.cfg $n22(s:Tstring) = "252"; 正如你所看到的,它find了这条线,但它返回了一切。 我只想要252.你能告诉我我要去哪里吗? 谢谢

将grep结果用“:”作为字段分隔符来awk

我想过滤一个grep命令的结果,例如: myRepo/path/to/my/file.php:123: error_log(' – myError'); 如果我做了以下,它的作品。 echo“myRepo / path / to / my / file.php:123:error_log(' – myError');” | awk -F':''{print $ 1}' 但是当它是grep命令的结果时,它会输出整行,为什么? grep -rn“myError”| awk -F':''{print $ 1}' 我有CentOS 6与Awk 3.1.7,bash 4.1.2

在grep正则expression式中转义特殊字符

我试图在一个文件上运行一个grep正则expression式,在那里我必须排除出现“00”和“0”的行。 我想出了这个expression方式: grep -a -E \"stored\"\:\ \"\*123\*(?!00)[0-9]{2,5}\#\" $filename 但是当我试图用bash运行它时,我得到了 -bash !00: event not found ,或者(一旦我input了set +H ), -bash: syntax error near unexpected token ('` 请问我需要做什么才能在bash中正确地逃避这个正则expression式?

SED查找和replacew \ Regularexpression式

好吧,所以我很困惑,没有想法。 我试图用新的IP地址replace所有的旧IP地址。 find -type f | grep \.php$ | xargs sed -r -i "s/(\'|\")(localhost|127.0.0.1|10.0.32.4|10.0.32.5)(\'|\")/\"10.0.32.165\"/g" 我试图find所有的PHP文件,并用10.0.32.165replace下面的任何一个(localhost,127.0.0.1,10.0.32.4,10.0.32.5)。 find * | grep \.php$ | xargs egrep "(\'|\")(localhost|127.0.0.1|10.0.32.4|10.0.32.5)(\'|\")" 第一个命令运行后,我想确保没有旧值的痕迹,所以我运行上面的命令,但不幸的是返回 siteeval/application/libraries/fetcher.url.class.php: $this->host = "10.0.32.4"; 有人看到我做错了什么? 或者也许可以让我成为一个更好的方式做到这一点?

grepdate与正则expression式

我有以下格式的行的文件: . . . 12/16/09 17:56:30.211 rest of line… . . . 12/17/09 05:34:10.809 rest of line… . . 我如何grep这个文件之间的两个date之间的线,即一天的所有值? 我需要使用当天所有不同服务器日志中的内容创build每日文件。

grep /search文件中的多行

假设我有一个长嵌套数组的文件,格式如下: array( 'key1' => array( 'val1' => 'val', 'val2' => 'val', 'val3' => 'val', ), 'key2' => array( 'val1' => 'val', 'val2' => 'val', 'val3' => 'val', ), //etc… ); 我想要做的是有一种方法来grep /search一个文件,并通过知道关键1,获取它包含的所有行(子数组)。 这可能吗?

UNIX工具转储select的HTML?

我正在寻找监控网站上的变化,我目前的做法正在被旋转的顶级横幅所击败。 是否有一个UNIX工具,采用select参数(ID属性或XPath),从标准input读取HTML和基于select打印到标准输出的子树? 例如,给定一个html文档,我想过滤除了id="content"元素的子树以外的所有东西。 基本上,我正在寻找最简单的HTML / XML等价于grep。

find文件并在尾部search

以下是按预期工作。 find /opt/ -name "somefile.out" -exec grep 'Connection refused' {} \; | more 但是,如果我只想searchfind的文件的尾部,我不能像这样添加尾巴或尾巴-100 … find /opt/ -name "somefile.out" -exec grep 'Connection refused' tail {} \; | more 在最后几行中search文本的最佳方法是什么?

保存出来的尾巴

以下不起作用… tail -f /var/log/mysql/general.log | grep Connect > /home/myfile.txt 如果我删除了“-f”开关,那么我可以将输出保存到文本文件,但是在尾巴运行时它不起作用。 发球台也不起作用 tail -f /var/log/mysql/general.log | grep Connect -tee "/home/myfile.txt" 更新 quanta提供的命令确实有效。 tail -f /var/log/mysql/general.log | tee >(grep Connect > /home/myfile.txt) 但是我必须保持窗户的开放。 nohup尾巴-f …似乎没有工作。 我如何保持这个命令不断运行?

如何在使用awk或grep时使用多个关键字进行search?

我有一个文件的集合。 我想用grepsearch它们,find所有并且只包含stringkeyword1 和 keyword2任何地方。 我也想知道如何用awk做到这一点。