Linux 查找文本

tail命令查看日志信息

实时监控日志:

tail -f filename

实时监控10行日志信息:

tail -10f filename

查看日志尾部的最后100行日志信息:

tail -n 100 filename

查看日志100行之后的日志信息:

tail -n +100 filename

cat命令查看文本信息

查看全部文本内容

cat filename

查看文本的中间某些行范围之间的内容,例如说查看文本文件100-120行之间的内容:

cat -n filename |tail -n +100|head -n 20

不过使用个人不是太喜欢使用这种命令来进行文本的定位查看,因为查看起来过于麻烦,文章下边会有更加简便的命令操作。

tac查看文本信息

和cat命令有点相反,cat命令更多的是从头部往尾部的顺序展现文本内容,而tac命令正好是从文本的尾部往头部展现日志内容

tac filename

例如说,我们通过cat命令和tac命令同时来查看一段相同的内容:
在这里插入图片描述
超实用,Linux中查看文本的小技巧

通过不同命令来展示文本,会发现文本的内容顺序有所相反。

搜索文本内容

grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

grep命令的常用方式:

在多个文件中查找:

grep "match_pattern" file_1 file_2 file_3 ...

标记匹配颜色 --color=auto 选项:

grep "match_pattern" file_name --color=auto 
//【这里的color项可以根据文档说明进行选择always,never,auto三种】

输出除之外的所有行 -v 选项:

grep -v "match_pattern" file_name

使用正则表达式 -E 选项:

grep -E "[1-9]+"

只输出匹配到的内容选项:

grep -o -E "[a-z]+."  line

统计文件或者文本中包含匹配字符串的行数 -c 选项:

grep -c "text" file_name

输出包含匹配字符串的行数 -n 选项:

grep "text" -n file_name

在了解了grep命令能完成的功能点之后,我们可以在实际工作中灵活运用。

有些时候我们也会遇到一些希望查看某个时间段日志信息的需要,这个时候可以利用grep这条命令来实现这个功能,例如说希望查看2019-08-06 22点这一个小时以内的日志信息,那么可以输入以下命令:

 grep '2019-08-06 22' filename

在这里插入图片描述
这样可以快速定位到你所希望查看的信息范围。

由于grep命令是可以接收standard input的数据,因此我们通常可以借助管道命令符“ | ”的帮助,在一些标准输出进行中进行查找操作。

例如说,先将文件的内容读取出来,然后借助管道的帮助将内容转发给grep来进行内容过滤,如下边的这段命令:

cat log.file |grep -n '2019-08-06 22:43'

在这里插入图片描述
除了使用grep命令之外,也可以使用sed命令来实现相应的效果。

sed是一种非交互式的编辑器,sed会逐行处理文件(或输入),并将结果发送到屏幕。

可能对于新手来说,讲概念还不如直接来几个实操案例更为直接。

sed命令的常用方式:

只打印文件的第一行内容

sed -n '1p'  filename

查看文件的第一行到第十行之间的内容

sed -n '1,10p' filename

删除第一行文本信息

sed '1d' filename

将文本里面的某些字符串进行替换

sed 's/希望替换的内容/被替换的内容/g'
例如:sed 's/1/one /g' filename 将1替换为one

在了解了sed命令的一些基础用法之后,我们可以在实际的工作场景中多次运用,从而强化自己对于sed命令的理解。

例如说,通过sed命令来进行日期范围的指定,例如说查看2019-08-06 22:43-22:44之间的日志记录:

sed -n '/2019-08-06 22:43/,/2019-08-06 22:44/p' filename

在这里插入图片描述
上边有说到使用head和tail命令一起来实现对于日志文件的某段内容查看,但是这样的操作实在是有点麻烦,不妨可以尝试使用sed命令来进行操作。

例如说,查看日志的第1-20行内容:

 nl log.file | sed -n '1,10p'

在这里插入图片描述
利用more命令进行翻页查看

如果说希望查看的日志文件过大,那么可以通过使用more命令来进行分页查找,例如说设定每一页展示10条数据信息:

more -10 filename

在这里插入图片描述
通过使用more命令可以查看到每一页展示的数据,同时通过敲空格键会进行下一页的跳转。同时在窗口中也会显示当前所阅读的文本内容的基础进度。
说了那么多,我们不妨进行一些模拟的操作场景吧:
查看日志最后一次出现关键字**‘test’**的日志记录

 grep 'test' -A 10  log.file | tail -n 11

这里需要了解到grep命令的几个参数含义:

  1. grep ‘name’ -A 10 显示匹配内容和后面的10行
  2. grep ‘name’ -B 10 显示匹配内容和前面的10行
  3. grep ‘name’ -C 10 显示匹配内容和前后面的10行

tail -n 11命令则是将当前显示的10行内容以及匹配的那一行内容展示出现
简单统计一份日志里面出现‘test’关键字的行数
相应命令:

grep 'test' ./log.file |wc -l

这里我们可以先将文本的内容进行输出到标准输出中,然后借助管道将数据信息传给wc命令进行统计。
wc命令常用的几个参数

  1. -l 匹配的行数
  2. -w 匹配的字数
  3. -m 匹配的字符数目
### Linux 中用于查找文件中文本内容的命令 在 Linux 系统中,除了专门用于定位文件路径的工具外,还有多个强大的命令可以帮助用户搜索文件中的具体文本内容。以下是几个常用的命令及其特点: #### grep 命令 `grep` 是最常用且功能强大的文本搜索工具之一。它可以在指定的文件或目录中搜索匹配特定模式的内容,并支持正则表达式[^3]。 ```bash grep "search_pattern" /path/to/file ``` 如果需要递归地在整个目录结构中搜索包含某个字符串的文件,可以使用 `-r` 参数: ```bash grep -r "search_pattern" /path/to/directory ``` 为了忽略大小写,还可以加上 `-i` 参数: ```bash grep -ri "search_pattern" /path/to/directory ``` #### ack 和 ag (The Silver Searcher) 对于更复杂的场景或者性能需求更高的情况,可以考虑 `ack` 或者 `ag` 工具。这些工具相较于传统的 `grep` 提供更快的速度和更好的默认配置[^4]。 安装 The Silver Searcher (`ag`) 后,可以通过如下方式快速搜索整个项目内的文本内容: ```bash ag "search_pattern" /path/to/project ``` #### ripgrep (rg) `ripgrep` 是另一个现代替代方案,以其速度著称。它不仅速度快,还内置了智能案例检测、Unicode 支持等功能[^5]。 安装后可以直接运行以下命令进行全文检索: ```bash rg "search_pattern" /path/to/search ``` 以上三种方法均适用于不同规模的任务需求,在实际应用过程中可以根据具体情况选择合适的工具完成相应的工作。 ```bash # 使用 rg 进行递归搜索的例子 rg --case-sensitive "example text" ~/Documents/ ``` ### 总结 当需要在 Linux 文件系统内查找具体的文本内容时,推荐优先尝试标准的 `grep` 命令;而对于大型代码库或者其他复杂环境下的高效查询,则建议采用更为先进的解决方案比如 `ag` 或者 `ripgrep` 来提高效率与便利度[^6]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值