Articles of grep

如何从lshw输出获得bash shell中所需的值?

我想从lshw输出中提取信息: -cpu product: …… 我只想要这个-cpu的产品信息。 我怎么用awk或sed来做到这一点?

如何使用grep表示variables

我怎样才能使用grep表示variables? 我将“2月1日”(将来可以更改)存储为variables“date”。 现在我想grep这个variables'date',我该怎么做?

比较第一或第三的位置

MySQL的通用日志文件看起来像这样… 110822 14:41:14 103700 Query SHOW FULL TABLES FROM `engine` LIKE 'PROBABLYNOT' 103700 Query SHOW FULL TABLES FROM `engine` LIKE 'PROBABLYNOT' 110822 15:01:14 103701 Query SHOW FULL TABLES FROM `dbname` LIKE 'PROBABLYNOT' 线程ID 103701可以在开始或3号位置(date时间之后)find我正在使用以下命令查找在特定线程中执行的所有查询。 grep -w'103701'/var/log/mysql/general.log | cut -c 1-1000 | 尾巴-10 这显示了很多提到103701号码的行。 我只是在第一或第三的位置寻找这个数字。 应该怎样正确的grep声明呢?

grep模式在2个不同的系统中使用相同的grep版本解释不同

我们为数据中心制作了一个linux设备,并且都运行从同一个kickstart进程安装的fedora。 有不同的硬件版本,有些是IDE硬盘和一些SCSI,所以文件系统可能在/ dev / sdaN或/ dev / hdaN。 我们在这些设备中有一个Web界面,显示使用“df | grep / dev / * da”生成的磁盘使用情况。 这通常适用于这两个硬件版本,给出如下输出: /dev/sda2 5952284 3507816 2137228 63% / /dev/sda5 67670876 9128796 55049152 15% /data /dev/sda1 101086 11976 83891 13% /boot 但是,对于一台机器,我们从该命令得到以下结果: Binary file /dev/sda matches 看起来它的grepping文件与某个未知模式匹配/ dev / * da,只是在grep版本,软件包,内核和硬件上看起来完全相同的这个框中。 我将grep模式转换为“/dev/.da”,并且在这个麻烦的盒子上,一切都按预期工作,但我不知道为什么会发生这种情况。 有人有主意吗? 或者也许还有其他一些testing呢?

在zipfile中的文件名相同的grep -l

给定一组zip文件,是否有一个简单的方法来列出那些包含名称与给定模式匹配的文件的zip文件。 使用grep -l只列出其内容包含与给定模式匹配的行的文件? 我已经能够提出最好的是 for i in $ZIPFILE_LIST > do j=$(basename $i) > unzip -l $i > /tmp/$j > grep -l $PATTERN /tmp/$j > rm /tmp/$j > done 但它是相当hacky,没有例如通过sed传递grep输出(与各种逃避头痛)它会告诉你哪些文件你关心,但它并不实际上会给你一个forms的完整path,然后可以传递给别的东西。 这似乎是一个相当普遍的用例,应该有一些更好的开箱即用的工具或工具的组合来做到这一点。

如何直接grep到ftp?

这个语法有什么问题? 如何直接在远程FTP上写输出,因为硬盘空间不足? 该命令正在工作,但没有硬盘空间来获得完整的结果: find /somedir/ -name '*.*' -exec grep -i 'some string' /dev/null {} + >> /somedir/output.txt 我试过类似的东西,但我得到错误“操作不适用”: find /somedir/ -name '*.*' -exec grep -i 'some string' /dev/null {} + >> ftp -u ftp://[email protected] /somedir/output.txt

高级grep,其中string不以URL开头

我在我们的网站上看到很多错误日志,都在寻找favicon.ico。 favicon现在托pipe亚马逊S3,但它似乎仍然有一个旧的,我找不到任何地方的链接(我是一个新的员工,所以我不太熟悉的东西)。 我怎样才能做一个不以http://s3.amazon.com开始的favicon.ico的grepsearch?

在字典中查找词的文件的出现

我有一些search日志,我想比较某些字典文件。 一旦我处理了search日志来筛选出某些条目,并将所有search条目分成不同的行,那么通过什么简单的方法就可以知道词典文件中有多lesssearch条目?

通过mailq grep'ing

我想过滤由mailq (Postfix)返回的一些邮件ID。 但是,格式不是非常“友善”,因为单个邮件的信息跨越多行: 9F701869D2 1356 Mon Aug 23 12:13:43 some@sender (host some.host[1.2.3.4] said: 450 4.1.1 some error message) some@recipient 9437586CF4 3153 Sat Aug 21 09:36:40 [email protected] (host some.host[1.2.3.4] said: 450 4.1.1 some error message) [email protected] 例如,获取某些特定错误代码的所有邮件ID的最简单方法是什么? 也许通过删除(单)新行,然后grep ing,然后cut ? 或者通过使用其他更合适的工具? 请解释你的答案。 我的主要兴趣不是针对当前问题的复制粘贴解决scheme(通过错误代码进行过滤),而是理解如何轻松parsing这种多行输出。

从输出中删除2行,grep匹配正则expression式加上下一个1

我有一个来自postgresql的日志文件,它具有格式的日志条目; LOG: execute <unnamed>: /match this here/ DETAIL: parameters: /also want to filter this line/ 我认为这可能是可能的 grep -v –after-context=1 'match this here' /my/log/file.log 但它不起作用。 有一些sed / awk / grep的魔术,还是我必须做一些Perl?