基于文件名模式和文件内容列表的文件名?
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'
以上是关于基于文件名模式和文件内容列表的文件名?的主要内容,如果未能解决你的问题,请参考以下文章