linux中sed配合 grep,grep与cat、sed的结合

grep命令是Linux系统中用于文件字符串搜索的利器,常用于日志分析和程序调试。本文介绍了grep的基础用法,如查找、显示行号、忽略大小写等,并结合cat和tail命令展示了如何查看关键字附近的上下文。同时,还讲解了grep与sed命令的组合,演示了如何在文件中批量替换关键字。这些技巧对于日常的系统管理和开发工作非常实用。
摘要由CSDN通过智能技术生成

grep查找命令

grep命令是linux系统中,最常用的文件字符串查找命令,职业生涯中,我们几乎离不开它。

下面是它最简单的用法,不过实际情况下,我们通常会添加很多参数或结合其他的命令去进行使用。

1grep ""

常用命令参数:

1

2

3

4

5

6

7

8

9

10

11

12

13

14: 文件名称,多个文件使用空格隔开

: 匹配字符

-n : 显示行号

-i : 忽略字符大小写

-l : 列出符合条件的文件名

-r : 查找所有子目录

-w : 只显示整行全匹配

-o : 只显示匹配的关键字部分

-A : 关键字所在行、以及之后num行

-B : 关键字所在行、以及之前num行

-C : 关键字所在行、以及前后num行

–include="*.txt": 仅查找指定后缀的文件

> file: 将查询结果保存到文件中

>> file: 将查询结果追加到文件中

如,查询哪些文件中包含“ok”:

1grep "ok" -r -l --include="*" ./

grep和cat/tail的结合

通过grep和cat/tail的结合,我们可以轻易的实现返回文件中的关键字所在行、以及附近指定行的内容,尤其是在我们查询程序日志的时候,用的非常多。

语法:

1

2

3cat | grep

tail -f | grep

参数说明:

1

2

3:文件名称,多个文件使用空格隔开

:匹配字符

:grep命令参数

cat结合示例:在文件default.log中查找“异常”,并收集前后10行记录

1cat default.log | grep "异常" -C 10

tail结合示例:在文件default.log中查找“异常”,并进行实时收集

1tail -f default.log | grep "异常"

grep和sed的结合

sed命令是用来编辑一个或多个文件、简化对文件反复操作的神器,它和grep的结合令我们的文件操作起来更加的得心应手。

我们下面就来看看,它能给我们带来怎样的体验。

sed语法介绍:

1sed

常用命令参数:

1

2-i: 直接修改配合的文件内容

-e: 不修改原文件,仅输出,通常可以和“>或>>”命令结合,输出到新文件中

常用动作说明:

1

2

3

4

5s: 替换字符,替换指定的字符串,如:sed -i 's/匹配字符/新字符/g' a.txt,末尾的/g表示替换所有匹配的字符

a: 新增行,在指定行或指定范围的行的下一行新增内容,如: sed -i '2a\bbb' a.txt

i: 新增行,在指定行或指定范围的行的上一行新增内容,如: sed -i '2i\bbb' a.txt

c: 替换行,替换指定行或指定范围的行的内容,如:sed -i '3,5c\replacestr' a.txt

d: 删除行,删除指定行或指定范围的行,如: sed -i '3d' a.txt

注: 动作前面的数字表示第几号,或者几行到几行

扩展案例:

查找某个文件中的关键字,并在其下新增一行数据

1sed -i '/关键字/a\新增的一行数据' a.txt

grep与sed命令结合的示例:

上面我们已经了解sed命令的特性,那我们现在就试试,它和grep命令的结合,究竟能撞出怎样的火花?

下面的命令实现的是:将某个目录以及子目录的所有文件中的关键字“ok”统一替换为“yes”

1sed -i 's/ok/yes/g' `grep "ok" -r -l --include="*" ./`

上面 `` 括起来的grep命令,表示将grep命令查询的结果作为操作文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>