1. 前言

本文主要讲解如何在Linux系统下查找包含指定字符串的文件和搜索相关关键字。

2. linux 查找包含字符串的文件相关实用案例

使用find命令查找文件,并把查找结果重定向至grep程序,由grep程序在每个文件内容里查找是否包含xxx字符串

[root@zcwyou ~]# find / -name "*" | xargs grep "xxxx"

或者直接使用grep,指定要查找的字符串内容

[root@zcwyou ~]# grep "这里输入要匹配的字符串" ./ -Rn -l

关于命令后面的参数,本文后面会提及。

如果要查找出包含2个字符串的文件的文件名:

命令格式如下:

grep “目标字符串1” ./ -Rn | grep “目标字符串2” ./ -Rn -l

即在当前目录下,使用一个命令查找带目标字符串1的文件或带目标字符串2的文件。

linux系统中,如果你想在当前目录下查找所有包含”www.linuxrumen.com”字符串的文件,可以这样输入命令:

[root@zcwyou ~]# grep -rn "www.linuxrumen.com" *

命令grep部分选项解释:

: 表示当前目录所有文件,也可以是某个文件名,可省略

-r 递归查找相关文件

-n 打印时带行号

-R 查找所有文件包含子目录

-i 忽略大小写,默认情况区分大小写

-l 只列出匹配的文件名

-L 列出不匹配的文件名

-w 只匹配整个单词,而不是字符串的一部分(如匹配 ‘magic’,而不是 ‘magical’)

-C number 匹配的上下文分别显示[number]行

还有一些使用案例分享给大家:

查找当前目录下包含了zcwyou字符或者包含了redhat字符的文件,命令如下:

[root@zcwyou ~]# grep "zcwyou" | "redhat" *

查找当前目录下既包含字符串1又包含字符串2的文件

执行如下命令

grep “字符串1” | grep “字符串2” *

当然还可以通过find和xargs结合grep查找文件列表,例如:

[root@zcwyou ~]# find -type f -name '*.java'|xargs grep 'http'

如果你想在当前目录下 查找”hello,world!”字符串,可以使用以下命令:

[root@zcwyou ~]# grep -rn "hello,world!" *

grep的常用选项功能解释如下:

: 表示当前目录所有文件,也可以是某个文件名

-r 是递归查找

-n 是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写

下面是一些有意思的命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,

grep -l pattern files :只列出匹配的文件名,

grep -L pattern files :列出不匹配的文件名,

grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

grep -C number pattern files :匹配的上下文分别显示[number]行,

grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

这里还有些用于搜索的特殊符号:

\< 和 > 分别标注单词的开始与结尾。

例如:

grep man 会匹配 ‘Batman’、‘manic’、‘man’等,

grep ‘\

grep ‘\’ 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

‘^’:指匹配的字符串在行首,

‘$’:指匹配的字符串在行尾,

xargs配合grep查找,使用find指令查找文件,后缀名为php,内容包含aaa,打印这些文件信息和相关内容

[root@zcwyou ~]# find -type f -name '*.php'|xargs grep 'aaa'

3.总结

linux查找包含字符串的文件其实使用最多是三个命令的组合,find命令根据文件类型、文件名、文件大小、权限、文件时间等等条件查找文件,xargs用于参数传递,即把find执行结果交给下一个工具。grep用于查找、匹配、过滤文本文件或输出结果。这3个工具结合起来就可以高效地匹配到要查找的内容。

linux tail 查找字符串,linux 查找包含字符串的文件相关推荐

  1. Linux 命令行访问名字中包含空格的文件或文件夹

    Linux 命令行访问名字中包含空格的文件或文件夹 在 Windows 下命名文件或文件夹名有空格是可以的,甚至在 Windows 和 Ubuntu 虚拟机共享的文件中也可以这么做,但是在 Ubunt ...

  2. 要求用户输入一个电子邮件。验证电子邮件格式是否正确。 电子邮件格式:XX@XX.com 实现方式:该字符串中必须包含@字符串和.字符串。 @不能出现在第一个位置,并且@位置大于.;

    要求用户输入一个电子邮件.验证电子邮件格式是否正确. 电子邮件格式:XX@XX.com 实现方式:该字符串中必须包含"@"字符串和"."字符串. "@ ...

  3. python 用print输出字符串和数字的组合_Python字符串拼接(包含字符串拼接数字)...

    我们见过书写字符串的一种特殊方式,即直接将两个字符串紧挨着写在一起,这样的话 Python 就会自动拼接它们,比如说:s1 = "Hello,"'Charlie' print(s1 ...

  4. python 拼接数字和字符串_Python字符串拼接(包含字符串拼接数字)

    我们见过书写字符串的一种特殊方式,即直接将两个字符串紧挨着写在一起,这样的话 Python 就会自动拼接它们,比如说:s1 = "Hello,"'Charlie' print(s1 ...

  5. linux tail日志命令,linux tail命令及其它日志查看命令的用法

    当日志文件存储日志很大时,我们就不能用vi直接进去查看日志,需要Linux的命令去完成我们的查看任务. Log位置: /var/log/message 系统启动后的信息和错误日志,是Red Hat L ...

  6. linux tail 内容过滤,Linux命令 tail 加过滤功能,linuxtail

    Linux命令 tail 加过滤功能,linuxtail tail -n  行数 -f  文件夹路径以及 名字,用于查看log   后面可以追加  | grep   +名字  用于过滤 ps  aux ...

  7. linux tail 自动刷新,Linux命令: tail

    tail 原单词 tail (尾巴) 工作中应用于查看实时日志,或者复现BUG时实时查看日志 tail 命令可用于查看文件的内容,与cat不同的是tail命令是从末尾开始查看,默认查看最后十行,最常用 ...

  8. linux删除第二次出现的字符,linux下 怎样删除文件名中包含特殊字符的文件

    目录中无意间出现了 -- 这个文件 [root@dev tmp]# ls -- 00 01 02 03 04 05 06 07 08 09 [root@dev tmp]# ll total 0 -rw ...

  9. linux删除中文名文件,linux运维 - linux下 怎样删除文件名中包含特殊字符的文件...

    目录中无意间出现了 -- 这个文件 [root@dev tmp]# ls -- 00 01 02 03 04 05 06 07 08 09 [root@dev tmp]# ll total 0 -rw ...

最新文章

  1. 在开发的过程如何使用源码
  2. 数据库:如果MySQl磁盘满了,如何解决!
  3. linux 常用参数,Linux 常用命令及参数整理
  4. PHP系统管理mongodb,MongoDB的日常维护管理
  5. js或jquery如何获取父级、子级、兄弟元素(包括祖级、孙级等)
  6. 力扣-240 搜索二维矩阵 II
  7. 生成osm文件_[转载]OSM数据的获取及格式转换
  8. 远控免杀从入门到实践 (11) 终结篇
  9. 工业摄像头传感器尺寸与像元尺寸的关系
  10. 开通支付宝小程序收款功能
  11. 利用梳状函数求解周期函数傅里叶变换
  12. 翁恺慕课C语言作业 第三章时区换算
  13. 论文阅读笔记《Low-shot Visual Recognition by Shrinking and Hallucinating Features》
  14. matlab共阳极二极管,三引脚SOT-323封装的共阳极稳压二极管详情
  15. 硬盘出现故障的5种表现
  16. 3.7 广域网(ppp协议、HDLC协议)
  17. 装机防忽悠征文]对付不良商家,攒机知识。
  18. More than 4094 XFs (styles)
  19. java国王毒酒答案,500桶48小时国王囚犯答案解析-奥数500桶酒其中1桶是毒酒试题及答案【附原题】完整打包下载-东坡下载...
  20. 电脑如何连接windows server服务器

热门文章

  1. java setmessage_Java Message.setTitle方法代码示例
  2. openwrt patch文件怎么用_openwrt 打补丁方式修改内核源码
  3. uml类图用什么软件画_为什么需要UML类图建模?
  4. 设计师必备的资源网站和灵感作品社区分享!
  5. 彩色人物创意灵感|C4D万物皆可造!
  6. 民航飞行学院计算机学院院长,中国民航飞行学院计算机学院领导及老师到访四川华迪开展教研活动...
  7. 使用libbpf-bootstrap构建BPF应用程序
  8. Linux系统调用表:x86和x86_64
  9. 《深入浅出DPDK》学习思维导图
  10. Docker生态技术链