草庐IT

preg-grep

全部标签

linux - 如何 grep,然后从分隔的列文件中剪切?

我有一个包含多行的文件,每行用|分隔成多列。我可以对某一行进行grep,也可以对某一列进行剪切,但我不知道如何同时执行这两项操作。grep'^1001'customer从名为customer的文件中抓取以1001开头的行cut-d"|"-f3customer从客户文件中的所有行中删除第3列。所以……grep'^1001'customer|cut-d"|"-f3customer 最佳答案 调用cut时只需省略文件名,它将使用grep的输出作为其输入:grep1001customer|cut-d"|"-f3还值得注意的是,grep100

linux - 如何使用grep -e 来匹配部分单词?

如果你像这样使用grepgrep-rnw'/your/path/to/search/'-e'ngetFoo'grep找不到包含“functiongetFoo()”的文件。如果您只搜索“getFoo”或“functiongetFoo”,grep将找到包含该函数的文件。那么查找包含部分字符串的文件的最佳方法是什么?提前致谢! 最佳答案 您应该删除告诉grep只匹配整个单词的-w选项。grep-rn'/your/path/to/search/'-e'ngetFoo'还将在单词边界之间进行搜索。

linux - 如何组合多个 grep 命令?

我有一个很长的.txt文件(LONG.txt)。在那个txt文件中,我想搜索3种类型的模式,然后我想将grep结果捕获到一个新的txt文件(SHORT.txt)。模式:AAAABBBBCCCC注意:当找到模式AAAAA或BBBBB时,我只想打印包含AAAAA或BBBBB的行>.当找到模式CCCCC时,我想打印包含CCCCC的那一行+下1行。例子:LONG.txt:blablablablablablasomethingsomethingAAAAAsomethingsomethingblablablablasomethingsomethingCCCCCsomethingsomethingb

regex - 使用 sed 剪切部分 grep 输出

我需要从日志文件中获取值,值可能不同并且需要获取它。字符串示例:Testsrun:1042,Failures:0,Errors:0,Skipped:0我尝试:catlog.log|grep'^Testrun:'|sed-e's/^Testrun://'但我得到:1042,失败:0,错误:0,跳过:0我需要4个结果类似的命令第一个命令(测试运行)1042第二个命令(失败)0第三条命令(错误)0第四个逗号(跳过)0 最佳答案 您可以使用以下四个命令来获取Testsrun的值,Failures,Errors,和Skipped分别是:cat

linux - Grepping 并仅在发现内容时发送电子邮件

#!/bin/bash(/usr/src/chkrootkit-$VERSION/chkrootkit)|#Binarygrep'INFECTED|Vulnerable'|#Onlygetfoundissues/bin/mail-s'CHROOTKITWeeklyRun($SERVERNAME)'$EMAIL#SendEMail即使没有找到,这仍然会发送电子邮件。只有在grep时才发送的方法是什么? 最佳答案 这也许...只需在邮件命令中使用-E开关:man-Pcol\-bmail|grepempty-EDon'tsendmessa

regex - 在 grep 中转义斜杠 "\"

我有一行文件:"H:\Check\WP_20140511_029.mp4"与其他行一起。我想删除指示H:\Check目录的行。我试过了grep-v".*H:\\Check.*"testout.txt>testout2.txt但它并没有删除那些行。我的正则表达式.*H:\\Check.*有什么问题。regex101shows我的正则表达式正确匹配该行。 最佳答案 您可以使用:grep-v'H:\\Check'testout.txt>testout2.txt使用单引号以避免过度转义反斜杠很重要。使用双引号等效命令将是这样的:grep-v

linux - 如何使用 grep、sed 和 awk 打印找到的模式后的下一个单词?

例如,假设我有logfile.txt其中包含“这是一个示例文本文件”我的模式是“sample”如何在我的logfile.txt中获得sample旁边的单词。 最佳答案 这是使用awk执行此操作的一种方法:$awk'{for(i=1;i解释:$awk'{for(i=1;i和sed:$sed-n's/.*sample\([^]*\).*/\1/p'filetextIE。之后sample下一个空格分隔的字符串和grep使用PCRE和正面看后面:$grep-oP'(?见前面的解释。 关于linu

linux - 我怎样才能循环使用grep?

我有一个包含多行文本的文件。text1text2text3textN我有一个包含很多文件的目录。我想grep这个特定目录中的每一行。执行此操作的简单方法是什么? 最佳答案 无需循环,您可以使用grep和-f选项从文件中获取模式:grep-fpattern_filefiles*来自mangrep:-fFILE,--file=FILEObtainpatternsfromFILE,oneperline.Theemptyfilecontainszeropatterns,andthereforematchesnothing.(-fisspec

linux - 我可以 grep telnet 命令输出吗?

我有一个打印数百行输出的telnet命令,我可以grep输出吗? 最佳答案 使用“脚本”命令。如果在运行telnet之前运行“脚本”,所有写入终端的文本也会写入/file/path/filename。您必须执行“退出”或Ctrl-D才能实际写入文件,或者您可以检查文件。最后使用文件名对文件进行grep|grep“搜索文本”/file/path/filename是你要存放telnet输出的路径。使用脚本命令script/tmp/myscript.txt然后您在终端中触发的所有命令和输出都将放入此文件中。完成后使用ctrl+D,这将写入

linux - grep 和 sed 文件名中有空格

目前,我有grep-irl$schema$WORKDIR/|xargssed-i's/'"$schema"'/EXI1/gI'这不适用于带空格的文件名。任何想法,如何递归搜索和替换所有文件?谢谢 最佳答案 将-Z(又名--null)标志添加到grep,并将-0(也称为--null)标志到xargs。这将输出以NUL结尾的文件名,并告诉xargs读取以NUL结尾的参数。例如。grep-irlZ$schema$WORKDIR/|xargs-0sed-i's/'"$schema"'/EXI1/gI'