基于文件名模式和文件内容列表的文件名?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于文件名模式和文件内容列表的文件名?相关的知识,希望对你有一定的参考价值。

如何使用grep命令基于外卡file name列出的所有文件以此为开端搜索"LMN2011*"

我要添加这些文件内容的另一个检查。

如果file content有一些东西一样

LMN20113456

我可以使用GREP这个?

Grep -ls "LMN2011*"   "LMN20113456"

什么是搜索使用shell命令的文件名及其内容的正确方法?

答案

grep的不使用“通配符”搜索 - 这是贝通配,比如* .JPG。 grep的使用“正则表达式”模式匹配。而在壳“*”的意思是“什么”,在grep的意思是“零次或多次匹配前面的选项”。

更多信息和例子在这里:http://www.regular-expressions.info/reference.html

要回答你的问题 - 你可以找到匹配的文件使用grep一些模式:

find /somedir -type f -print | grep 'LMN2011' # that will show files whose names contain LMN2011

然后你就可以搜索他们的内容(不区分大小写):

find /somedir -type f -print | grep -i 'LMN2011' | xargs grep -i 'LMN20113456'

如果路径中可以包含空格,你应该使用“零结束”功能:

find /somedir -type f -print0 | grep -iz 'LMN2011' | xargs -0 grep -i 'LMN20113456'
另一答案

它可以不通过find用grep的"--include"选项来完成为好。

grep的手册页说:

--include=GLOB
Search only files whose base name matches GLOB (using wildcard matching as described under --exclude).

因此,要做到在一个文件中的字符串匹配特定模式的递归搜索,它会是这个样子:

grep -r --include=<pattern> <string> <directory>

例如,递归搜索所有的Makefile字符串“mytarget”:

grep -r --include="Makefile" "mytarget" ./

或者在所有文件中搜索开始与文件名“制作”:

grep -r --include="Make*" "mytarget" ./
另一答案
grep LMN20113456 LMN2011*

或者,如果你想通过子目录递归搜索:

find . -type f -name 'LMN2011*' -exec grep LMN20113456 {} ;
另一答案

查找/文件夹型的F -90 -mtime | grep的-E “(.TXT | .php |。公司| .root | .gif注意)” | xargs的LS -l> WWWlastActivity.log

另一答案

假设LMN2011*文件都在里面/home/me但跳过/home/me/temp或以下任何内容:

find /home/me -name 'LMN2011*' -not -path "/home/me/temp/*" -print | xargs grep 'LMN20113456'

以上是关于基于文件名模式和文件内容列表的文件名?的主要内容,如果未能解决你的问题,请参考以下文章

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容

不要在片段中显示列表视图项

你可以在graphql服务器模式文件中使用片段吗

将视图和片段保存在文件中

常用python日期日志获取内容循环的代码片段

python分析apache和nginx日志文件输出访客ip列表的代码