在搜索字符串代码时,我经常遇到这样的问题,即得到无意义、无上下文的结果。例如,如果一个函数调用分为3行,并且我搜索参数的名称,我得到的是单独一行的参数,而不是函数的名称。例如,在一个文件中包含...someFunctionCall("test",MY_CONSTANT,(some*really)-long/expression);搜索MY_CONSTANT会返回如下一行:MY_CONSTANT,同样,在评论区:///////////////////////////////////////////FIXMESOON,do..whileisthewrongchoicehere,becaus
我成功地使用find创建了当前子目录中所有文件的列表,不包括子目录“缓存”中的文件。这是我的第一段代码:find.-wholename'./cach*'-prune-o-print我现在希望将其通过管道传输到grep命令中。看起来应该很简单:find.-wholename'./cach*'-prune-o-print|xargsgrep-r-R-i"samson"...但这是返回大部分来自缓存目录的结果。我试过删除xargs引用,但这确实符合您的预期,对文件名的文本而不是文件本身运行grep。我的目标是在任何不是缓存内容的文件中找到“samson”。在这种情况下,我可能会通过使用双重g
我有一个名为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终端上使用grep命令,我希望输出不包含以“grep:”开头的所有行或以“./”开头的行,因为现在我得到这样的东西:grep:./users/blabla1:Permissiondeniedgrep:./users/blabla2:Permissiondeniedgrep:./users/blabla3:Permissiondeniedgrep:./users/blabla4:Permissiondeniedgrep:./users/blabla5:Permissiondeniedgrep:./users/blabla6:Permissiondeniedgr
关闭。这个问题是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-
如何将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
需要在包含很多子目录的目录中搜索文件中的字符串:我正在使用:grep-c-r"stringhere"*我如何计算总发现数?我怎样才能只输出至少有一个实例的那些文件? 最佳答案 使用Bash的进程替换,这给出了我认为是您想要的输出?(如果不是,请澄清问题。)grep-r"stringhere"*|tee>(wc-l)这会正常运行grep-r,同时输出到标准输出和wc-l进程。 关于linux-Grep递归和计数,我们在StackOverflow上找到一个类似的问题:
假设我有command1输出这个:b05808aa-c6ad-4d30-a334-198ff5726f7c59996d37-9008-4b3b-ab22-340955cb60192b41f358-ff6d-418c-a0d3-ac7151c03b787ac4995c-ff2c-4717-a2ac-e6870a5670f0我还有command2输出这个:b05808aa-c6ad-4d30-a334-198ff5726f7c59996d37-9008-4b3b-ab22-340955cb6019有没有办法让command1的输出不包含任何与command2匹配的行,以便最终输出看起来像这
在bash/GNU工具中是否有某种单行方式来阻塞直到文件中有匹配的字符串?理想情况下,超时。我想避免多行循环。更新:似乎我应该强调我希望进程在匹配字符串时结束。 最佳答案 感谢两位的回答,但重要的是该过程会阻塞直到找到,然后结束。我发现了这个:grep-q'PATTERN'-q不太便携,但我只会使用RedHatEnterpriseLinux,所以没关系。超时:timeout180grep-q'PATTERN' 关于Linux:阻塞直到在文件("tail+grepwithblocking"
这个问题在这里已经有了答案:HowcanIgrepwhileavoiding'Toomanyarguments'[duplicate](5个答案)关闭7年前。我正在尝试运行以下命令,但出现参数太长错误。你能帮忙吗?HOST#grep-rl'pattern'/home/*/public_html/*-bash:/bin/grep:Argumentlisttoolong有没有办法覆盖这个错误并在所有用户public_html目录中grep我想要的模式匹配文件。同一服务器中大约有500多个用户。