草庐IT

preg-grep

全部标签

linux - 如何在 awk 中运行 grep?

假设我有一个文件input.txt,只有几列和几行,第一列是键,还有一个目录dir,其中包含一些文件键。我想在dir中的文件中找到包含这些关键字的所有行。起初我尝试运行命令catinput.txt|awk'{print$1}'|xargsgrepdir这不起作用,因为它认为键是我的文件系统上的路径。接下来我尝试了类似的东西catinput.txt|awk'{system("grep-rndir$1")}'但是这也不管用,最终我不得不承认即使这样也不管用catinput.txt|awk'{system("echo$1")}'在我尝试使用\转义空格和$符号后,我来这里请教您,有什么想法吗?

linux - 双引号内的 Grep 字符串

在我使用这个的时候试图在双引号内搜索一个字符串grepuserfile|grep-e"[\'\"]"这将到达我需要的文件部分并突出显示双引号,但它不会在双引号中给出刺痛 最佳答案 尝试这样做:$cataaaafoo"bar"base$grep-oP'"\K[^"\047]+(?=["\047])'aaaabar我使用环顾四周高级正则表达式技术。如果你也想要引号:$grep-Eo'["\047].*["\047]'"bar"注意:\047是单引号的八进制ascii表示 关于linux-双引

linux - grep:/proc/sysrq-trigger: 输入/输出错误

我正在搜索文件系统并使用grep。我看到一切正常,直到出现此错误:Grep:/proc/sysrq-trigger:Input/outputerror我在网上的不同地方找到了其他人遇到过同样问题的信息,但没有任何地方真的有效。我尝试了2>/dev/null来抑制错误,但没有“跳过文件”,这正是我希望它能做的。相反,它只是停止进程(这是一个使用grep的查找/sed进程)。我认为有一种方法可以使用grep指定要排除的文件,但我希望可能有更强大、更优雅的解决方案。 最佳答案 听起来好像您正在递归搜索整个文件系统层次结构。这在大多数系统上

linux - 我如何 grep 整个代码行,可能是包装的代码行?

在搜索字符串代码时,我经常遇到这样的问题,即得到无意义、无上下文的结果。例如,如果一个函数调用分为3行,并且我搜索参数的名称,我得到的是单独一行的参数,而不是函数的名称。例如,在一个文件中包含...someFunctionCall("test",MY_CONSTANT,(some*really)-long/expression);搜索MY_CONSTANT会返回如下一行:MY_CONSTANT,同样,在评论区:///////////////////////////////////////////FIXMESOON,do..whileisthewrongchoicehere,becaus

linux - 将查找结果通过管道传输到 grep 中以快速排除目录

我成功地使用find创建了当前子目录中所有文件的列表,不包括子目录“缓存”中的文件。这是我的第一段代码:find.-wholename'./cach*'-prune-o-print我现在希望将其通过管道传输到grep命令中。看起来应该很简单:find.-wholename'./cach*'-prune-o-print|xargsgrep-r-R-i"samson"...但这是返回大部分来自缓存目录的结果。我试过删除xargs引用,但这确实符合您的预期,对文件名的文本而不是文件本身运行grep。我的目标是在任何不是缓存内容的文件中找到“samson”。在这种情况下,我可能会通过使用双重g

linux - 将 grep 传递给 bash 中的变量

我有一个名为email.txt的文件,如下所示:Subject:MytestFrom:myemailthisisthirdtest我想通过使用bash脚本只取出这个文件中的电子邮件地址。所以我把这个脚本放在我名为myscript的bash脚本中:#!/bin/bashfile=$(myscript)var1=$(awk'NR==2'$file)var2=$("$var1"|(grep-Eio'\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'))echo$var2但是我没有运行这个脚本。当我在bash中手动运行这个命令时,我可以获得电子邮件地址:ec

linux - 如何从 “permission denied” 中排除所有 “grep” 结果行?

所以,问题是,我在linux终端上使用grep命令,我希望输出不包含以“grep:”开头的所有行或以“./”开头的行,因为现在我得到这样的东西:grep:./users/blabla1:Permissiondeniedgrep:./users/blabla2:Permissiondeniedgrep:./users/blabla3:Permissiondeniedgrep:./users/blabla4:Permissiondeniedgrep:./users/blabla5:Permissiondeniedgrep:./users/blabla6:Permissiondeniedgr

linux - "grep -e"和 "grep -E"有什么区别

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion我有一个文件test.txt,其中有一些格式化的电话号码。我正在尝试使用grep查找包含电话号码的行。grep-e"[0-9]{3}-[0-9]{3}-[0-9]{4}"test.txt似乎没有工作,没有给出任何结果。但是grep-E"[0-9]{3}-[0-9]{3}-[0-9]{4}"test.txt有效。所以我想知道这两个选项之间有什么区别。根据mangrep:-E,--extended-

regex - 使用 grep 匹配 md5 哈希

如何将md5哈希值与grep命令相匹配?在php中,我过去使用过这种正则表达式模式:/^[0-9a-f]{32}$/i但我试过了:grep'/^[0-9a-f]{32}$/i'filenamegrep'[0-9a-f]{32}$/'filenamegrep'[0-9a-f]{32}'filename和其他变体,但我没有得到任何输出,而且我确定该文件包含md5哈希。 最佳答案 你想要这个:grep-e"[0-9a-f]\{32\}"filename或者更像是,根据您的文件格式描述,这个:grep-e":[0-9a-f]\{32\}"f

linux - Grep 递归和计数

需要在包含很多子目录的目录中搜索文件中的字符串:我正在使用:grep-c-r"stringhere"*我如何计算总发现数?我怎样才能只输出至少有一个实例的那些文件? 最佳答案 使用Bash的进程替换,这给出了我认为是您想要的输出?(如果不是,请澄清问题。)grep-r"stringhere"*|tee>(wc-l)这会正常运行grep-r,同时输出到标准输出和wc-l进程。 关于linux-Grep递归和计数,我们在StackOverflow上找到一个类似的问题: