帮助中心 >  行业资讯 >  云计算 >  掌握Linux文本处理利器:grep与sed全攻略

掌握Linux文本处理利器:grep与sed全攻略

2025-03-03 10:11:56 315

Linux命令行以其强大的文本处理能力著称,其中grep和sed命令是最常用的工具之一。它们分别用于搜索和编辑文本文件,在系统管理、日志分析、文本处理等领域都有广泛的应用。本文将深入探讨这两个命令的使用方法,涵盖其基本概念、常用参数和典型用例。


本文将详细介绍这三种工具的基本用法和应用场景,帮助你掌握它们在实际操作中的技巧。


1. 特点及应用场景

image.png

2. grep 命令

grep(Global Regular Expression Print)是一款功能强大的文本搜索工具。它可以通过指定的模式在文件中查找匹配的行,并将这些行打印到标准输出。

其基本语法如下:


grep [选项] '模式' 文件名

2.1 grep命令常用参数及含义

  • -i:忽略大小写(case-insensitive)地搜索。

  • -v:反转匹配,显示不符合模式的行。

  • -c:显示匹配行的数量,而不是匹配的行内容。

  • -n:显示匹配行的行号。

  • -r-R:递归地搜索目录中的文件。-R 也会跟踪符号链接。

  • -w:只匹配整个单词。


2.2 实操篇


2.2.1 匹配查询的内容并显示其后面的5行

image.png


2.2.2 统计某个进程及出现的行数

image.png

2.2.3 grep 过滤自身进程

image.png

2.2.4 精确匹配

image.png

2.2.5 搜索时忽略字母的大小写差异

image.png

2.2.6 显示匹配行的行号

image.png

2.2.7 在当前目录及其子目录中的所有文件中搜索包含“404”的行

image.png

2.2.8 统计包含特定字符串的行数

image.png

3. sed

sed是Stream Editor的缩写,是一种非交互式的流编辑器。sed允许对文本进行插入、删除、替换等操作,而无需打开文件。这使得它在批处理文本文件时非常高效。

具体工作机制要经历如下几步:

1. 读取输入

sed 从文件或标准输入(stdin)读取一行文本,并将其放入模式空间(pattern space)中。

2. 匹配与处理

根据用户提供的命令,sed 在模式空间中对这行文本进行处理。常见的操作包括:

  • 替换(s): 查找并替换模式中的文本。

  • 删除(d): 删除匹配到的行。

  • 插入/追加(i/a): 在匹配到的行之前或之后插入文本。

  • 打印(p): 打印模式空间的内容。

3. 输出

除非明确要求删除,处理后的内容会输出到标准输出(stdout),或者被重定向到一个文件。

4. 循环处理

sed 会对输入的每一行重复上述步骤,直到所有行都被处理完。

3.1 查找操作

image.png

3.1.1 指定行号查找

image.png

3.1.2 指定行号范围查找 【$表示最后一行 】

image.png

3.1.3 过滤

image.png

3.1.4 通过正则查找 【-r】

image.png

3.1.5 范围过滤

image.png

3.1.6 范围查找【当终止范围不存在,显示开始范围到文件末尾】

image.png

3.2 删除操作

image.png

3.2.1 指定行号删除


image.png

3.2.2 删除空行或者#

image.png

3.3 sed 核心应用之增加cai

image.png

3.3.1 增加内容

image.png

3.3.2 向文件config中增加多行

image.png

3.4 sed 核心应用之替换 s

image.png

3.4.1 替换每一行数字为空,加g表示全局替换

image.png

3.4.2 替换每一行数字为空,不加g表示只替换每行第一个匹配内容


image.png

4.总结

grep和sed是Linux命令行中非常强大的工具,它们各自擅长于搜索和编辑文本文件。通过理解和掌握这两个命令的使用方法,可以在日常的系统管理、脚本编写和数据处理工作中大大提高效率。grep的灵活搜索能力和sed的强大编辑能力相结合,使得它们在处理大规模文本数据时表现尤为出色。

在实际工作中,通过不断练习和应用这两个工具,你将能够轻松应对各种文本处理任务,成为Linux命令行的高手。

蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,也可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。更多技术知识,蓝队云期待与你一起探索,助力你在 Linux 运维之路上稳步前行。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: