Articles of grep

在具有相对path的文件中查找string

我不明白为什么这两个命令不提供相同的结果(差别只是相对于绝对path),有人可以解释吗? annika /srv/www/pages/com.example.www/www/povruc # find /srv/www/pages/com.example.www/www | xargs grep "datepicker()" 2>/dev/null /srv/www/pages/com.example.www/www/povruc/Application/Libraries/3rdParty/zebra/includes/Date.php: function disable_zebra_datepicker() { /srv/www/pages/com.example.www/www/js/functions.js: $(".datepicker").datepicker(); 与 annika /srv/www/pages/com.example.www/www/povruc # find ../ | xargs grep "datepicker()" 2>/dev/null ../povruc/Application/Libraries/3rdParty/zebra/includes/Date.php: function disable_zebra_datepicker() { 在第二种情况下,找不到第二个匹配 更新 – certificatepath中没有符号链接: annika /srv/www/pages/com.example.www/www/povruc # namei -ml $(readlink -f $PWD) f: /srv/www/pages/com.example.www/www/povruc drwxr-xr-x root root / drwxr-xr-x root root srv drwxr-xr-x […]

如果2个tomcat正在运行,请获取pid

我有2个tomcat正在运行,如果两个都有类似的名字,我怎么得到这个pid? ps -ef | grep java root 12952 1 0 10:01 pts/0 00:00:03 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/local/realbid/tomcat-realbid-ws/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/realbid/tomcat-realbid-ws/endorsed -classpath /usr/local/realbid/tomcat-realbid-ws/bin/bootstrap.jar -Dcatalina.base=/usr/local/realbid/tomcat-realbid-ws -Dcatalina.home=/usr/local/realbid/tomcat-realbid-ws -Djava.io.tmpdir=/usr/local/realbid/tomcat-realbid-ws/temp org.apache.catalina.startup.Bootstrap start root 12995 1 0 10:02 pts/0 00:00:03 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/local/realbid/tomcat-realbid/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/realbid/tomcat-realbid/endorsed -classpath /usr/local/realbid/tomcat-realbid/bin/bootstrap.jar -Dcatalina.base=/usr/local/realbid/tomcat-realbid -Dcatalina.home=/usr/local/realbid/tomcat-realbid -Djava.io.tmpdir=/usr/local/realbid/tomcat-realbid/temp org.apache.catalina.startup.Bootstrap start root 13317 12252 0 10:12 pts/0 00:00:00 grep java 如果我使用基本的grep,我得到了两个pid(s) echo `ps aux […]

忽略查找/输出中的错误

如何从find / |中过滤掉权限错误 grep foo输出?

sed找不到明显存在的文件

我运行以下命令,注释掉所有包含文本“dlclose”的行 grep -lIR "dlclose" . | grep -v ".svn" | xargs sed -i "s/.*dlclose.*/\/\/&/g" 但是,sed声称pipe道文件不存在: sed: can't read ./Utilities/src/DynLib.cpp: No such file or directory 这没有任何意义,因为grep能够find并pipe道文件名。 这里发生了什么? 它是否以错误的格式pipe道? 另外,作为一个便笺,我想合并两个greps,但是我不得不使用grep 2.5.1,它没有exclude-dir

需要使用正则expression式/ grep awk / sed / perl模式的帮助

从grep输出示例文件 file1:my $dbh = DBI->connect("dbi:mysql:$database_name", $DB_USER, $DB_PASSWD) file2:($dbc,$rc) = mysql_connect($mysql_host,$mysql_user,$mysql_password); awk模式应该从第1行获取值databasename,DB_USER和DB_PASSWD,并且从第2行获得mysql_host,mysql_user和mysql_password ,即all variables inside the function. 然后它应该在文件之前search该variables的声明:(分号) 例如:file1中的databasename可能是 $ databasename =“dbweb”; 例如:file2中的mysql_user可能是 $ mysql_user =“root”; 结果:它应该显示所有6个variables的variables声明以及文件名 file2:$mysql_host = "db1"; file2:$mysql_user = "root"; file1:$DB_USER = 'user';

redirect“tail –follow = name | grep“到一个文件

这是我的情况: 我有一个日志文件,也正在写一个应用程序。 日志文件被命名为“alarms.log”。 我想尾部文件的某个string,并将其redirect到一个名为alarms.log.test的文件。 所以我使用下面的命令。 tail –follow=name alarms.log | grep CEC >> alarms.log.test 然后我通过使用这个命令尾部的文件被redirect到: tail –follow=name alarms.log.test 我的问题是这样的:文件alarms.log.test没有得到任何文件。 我知道这是事实。 因为string正在被find。 我相信问题是redirect等待一定数量的数据被读取,然后刷新到redirect文件,是这样的? 我需要它立即刷新文件,每次发现的东西。 有没有办法做到这一点? 谢谢

使用Find,Grep,Awk或Sed来克隆后重命名服务器

我的客户告诉我他们已经在Ubuntu Linux服务器的VMWare中克隆了一个虚拟机。 现在,我的工作是进入所有的文件,并找出还有什么旧的服务器名称“主教”,并将其改为别的。 此外,IP地址已更改,我也需要search。 你通常如何使用find,grep,awk或sed来查找这些文件,然后迅速更改它们? 最后,我想制作一个Bash脚本。 当然,我不希望你告诉我每一个文件,但只是想知道find“X”文件的技术,然后用“Y”快速切换。

如何在Perl中grepstring

如何grep perl中的string。 variablessessionWeb包含一个网页html代码。 我想从这里grep“活跃的会议”,并希望打印如下。 例如,网页中的行将是 "2 active Sessions, 0 passivated Sessions (more stats…)" 预期产出: 2个活动会话。 我试过下面的代码,但它不工作? $sessionStr="active Sessions"; $sessionCount =~ grep( /$sessionStr/,$sessionWeb);

我想从程序的输出中滤出两行

我有一个输出一堆数据的命令,但我只需要两行。 Grep不起作用,因为我想要的行不是紧挨着。 我似乎无法弄清楚… 请帮助。 🙂 示例输出: Schedule: blabla: blabla: blabla: blabla: blabla: blabla: Something Level: blabla: blabla: blabla: 我想要这些行: Schedule: Something Level: 这个输出通过不同的服务器重复,输出是不一样的。 所以我需要一遍又一遍地search一个两样东西的模式。

用awk和grep从apache日志中获取一些意义

我试图从我的apache日志文件中获得一些意义:我想parsing我的访问日志,并有一些关于200 status code命中(每个命中多less次)的统计信息。 所以我试着学习一些awk的魔法,在这里我现在得到了: grep "HTTP/1.1\" 200" access.log | awk '{print $7 } ' | sort | uniq -c | sort -n 这是我要做的大部分事情:从access.log中select以200次命中结束的所有日志条目,然后select与生成的命中path对应的部分,对它们进行sorting,对每个唯一元素进行计数并根据数字进行sorting这个独特元素被击中的时代。 所以结果如下所示: 1 /public/img/upload/image_3.jpg 2 /public/img/upload/image_2.jpg 8 /public/img/upload/image_1.jpg 18 /public/js/main.js 33 / 236 /index.html 我试图进一步推动它: 因为我有logrotate,我有许多其他文件,如access.log.1, …, access.log.N ,我想获得统计所有这些统计。 我find的唯一的解决scheme是使用grep "my 200 expression" -R /pathToDirWithLogs这将grep目录中的所有文件,这显然是不好的,因为它不仅会logginggrep。 列出文件也不是一个选项,因为我不知道数字N. 我真的不关心/ public / img / upload /中的每个单独的文件,我只关心其中有多less人被击中。 […]