如何使用Grep命令根据通配符"LMN2011*"搜索file name,该通配符"LMN2011*"列出了所有以此开头的文件?

我想再判断一下这些文件的内容.

如果file content

LMN20113456

我能用GREP吗?

Grep -ls "LMN2011*"   "LMN20113456"

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

推荐答案

Grep不使用"通配符"进行搜索——这就是shell globbing,比如*.jpg.

更多信息和示例: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'

Linux相关问答推荐

Linux-如何区分目录中名称相同但扩展名不同的所有文件

Qt会泄漏内存吗?

如何使用netcat为DPDK实例提供输入?

从 curl 命令输出中获取值

根据文件名对目录中的文件进行 chgrp

`G++ 4.9.4` 中关于 WEXITSTATUS 的奇怪行为

使用 bash 中的数字对 RPM 内核字符串进行版本排序返回不正确的结果

函数在 shell 脚本中抛出错误语法错误:} unexpected

使用 bash 在包含模式的 java 文件中查找行,然后替换该行的另一部分

如何在 shell 脚本中只读取一个字符

未找到框架.NETFramework,Version=v4.7.1的参考程序集

如何将执行的shell命令的结果存储在python的变量中?

禁用内存地址的随机化

用于 Linux 的 Less 编译器

如何在没有 IDE 的情况下构建和部署三星 SmartTV 应用程序(例如:在 Linux 上)

如何知道linux调度器时间片?

C++:使用 longjmp 和 setjmp 安全吗?

如何在 Linux 中使用单行命令获取 Java 版本

如何使用mv命令移动特定目录中的文件除外?

计算每个进程打开的文件