linux三剑客(溯源)

本文详细介绍了Linux下的文本处理工具awk、grep和sed的基本用法,包括grep的行号显示、数量统计、正则表达式应用,sed的删除、修改、插入操作以及awk的取列、自定义分隔符和行号筛选等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.linux三剑客介绍:

        awk、grep、sed被称为Linux文本三大利器,合称为文本三剑客,也是必须掌握的Linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也是最复杂。grep更适合单纯的查找或文本匹配,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。

2.grep用法介绍

grep  擅长过滤

1.   -n   显示行号

grep -n 'mysql' 123.txt  

显示123.txt文件中包含mysql内容的数据,并显示行号。

2. -c  显示筛选数据的数量

grep -c 'mysql' 123.txt

显示123.txt文件中包含mysql内容的的行数:

3. -i   不分筛选数据的大小写

grep -c  -i 'MYSQL' 123.txt

把筛选的数据变成大写,依然可以筛选出75条数据。

4. -v  取反

grep -n  -i 'MYSQL' 123.txt

使用取反,过滤出来的数据都不含mysql

5.-o 只显示匹配到的内容

grep -o  'mysql' 123.txt

只显示匹配到的内容

6. -E   使用扩展正则表达式

grep -o  -E '..sql' 123.txt 

显示正则能匹配到的内容

7. -P  使用perl正则表达式

grep -P '\d{1,3}' 123.txt

筛选出123.txt文件中包含数字长度为1-3的内容

3.sed用法介绍

用法: sed [-nri][动作]  目标文件

1.sed  -n /筛选数据/p   目标文件        筛选出123.txt文件中的数据

显示1到5行的数据

sed -n  '1,5p' 123.txt
sed  -n /mysql/p 123.txt

2.   d      动作为删除

把文本中包含world的内容删除 

sed '/world/d' 12.txt

原本内容

hello world   内容被删除

注:删除的是显示内容,不是文本内的内容。

3.  sed -i    修改目标文件

sed -i    '/筛选内容/d'   目标文件

sed -i '/world/d' 12.txt

把文本中包含world的内容从目标文件直接删除

发现文件中的hello world 已经被删除了

4.   a动作表示       指定行后面插入一行          

sed -i '2a hello world' 12.txt 

命令表示在第二行后面加hello world

5.  i   动作     

在所选行前面加内容

sed -i '2i hello 123' 12.txt 

6. s   动作是替换

sed -i 's#hello#hi#g' 12.txt

把12.txt文件中hello替换为hi

需要I忽略大小写,全局替换需要g

4.awk用法

擅长取列

用法:

1. $数字  显示第几行数据       

awk  '{print  $1}'  12.txt

取出12.txt 文件的第一列,默认以空格为分割符

显示$1 显示第一列数据, $2显示第二列数据

2.  awk  -F     修改默认分割方式

awk -F ':' '{print $1,$NF}' /etc/passwd

修改默认分隔符为':' 并打印第一列和最后一列,$NF表示最后一列

3. NR   显示几行数据

awk 'NR<3{print $1}'  12.txt

显示12.txt 中的前两行数据的第一列

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值