Shell脚本,sed常见执行命令: p:打印行,d:删除行,c:替换行,s:替换关键字,=:打印行号,-i将改变写入文件

本文详细介绍了Shell脚本中sed命令的常见操作,包括p(打印行)、d(删除行)、c(替换行)、s(替换关键字)和=(打印行号)。通过实例演示了如何使用-i选项将更改写入文件,以及在不同场景下的具体应用。

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

Shell脚本,sed常见执行命令: p(print):打印行 d(delete):删除行 c(replace):替换行 s(substitution):替换关键字,=:打印行号,-i将改变写入文件

O、sed常见执行命令:
p(print):打印行
d(delete):删除行
c(replace):替换行
s(substitution):替换关键字
=:打印行号

一、p(Print)的用法:
1、sed -n ‘1,3p’ dir
打印指定文件的第1到3行

在这里插入图片描述

2、sed -n ‘1,3!p’ dir
打印指定文件的第1到3行以外的所有行

在这里插入图片描述

二、d(Delete)的用法,虽然是删除,但是必须要加上-i,才能修改源文件
1、sed ‘d’ dir
删除指定文件全文

在这里插入图片描述

2、sed ‘1,3d’ dir
删除指定文件第1到3行

在这里插入图片描述

3、sed ‘5!d’ dir
删除指定文件的第5行以外的内容

在这里插入图片描述

4、sed ‘/^#/d’ dir
删除#开头的行,就是删除注释

在这里插入图片描述

5、sed ‘/^$/d’ dir
删除空白行

在这里插入图片描述

三、使用-i将操作写入源文件
比如:
1、sed -i ‘1,3d’ dir
将文件的第1-3行删除并写入文件

在这里插入图片描述

四、c(Replace)的用法,替换源文件的内容,需要-i才会写入文件,c的替换单位是行
1、sed ‘c 123456’ dir
c前面没有内容,表示将文件中所有的行的内容全部替换为123456

在这里插入图片描述

2、sed ‘/1/c 1234’ dir
将文件中有1的行内容改为1234,替换的是整行,而不是root字符

在这里插入图片描述

3、sed ‘/127/c XXX’ dir
将文件中的127改为XXX,同样替换的是整行,而不是127

4、sed ‘4c XXX’ dir
将第4行的内容替换为XXX

5、sed ‘1,4c XXX’ dir
将1~4行的4行内容替换为一行XXX

五、s(substitution),以字符为单位的替换
0、s后面接的第一个字符将默认成为替换符
sed ‘s.root.XXXX.’ dir
sed ‘s:root:XXXX:’ dir
sed ‘s1root1XXXX1’ dir
sed ‘s#root#XXXX#’ dir
注意:
(1)当需要替换的内容不同时,可以使用不同的替换符避免替换符和替换内容相同引发的语法错误。
比如要替换路径时,路径中的/作为重复出现的内容,就要避免同时将/作为替换符。
要替换数字时,就要避免使用数字作为替换符。
(2)替换符的数量必须是3个。

1、sed ‘s/root/XXXX/’ dir
将全文的root替换为XXXX,最后一个/后面没有参数表示,默认替换每一行从左到右的第一个root

在这里插入图片描述

2、sed ‘s/root/XXXX/g’ dir
将全文的root替换为XXXX,最后的参数g表示替换行的所有root

在这里插入图片描述

3、sed ‘s/root/XXXX/2’ dir
将全文的root替换为XXXX,最后的参数2表示替换行从左到右第2个root,可以改为其他数字

在这里插入图片描述

4、sed ‘s/root/(&)/g’ dir
&表示旧内容,这个命令表示将当前文件所有行的所有root改为(root),&表示旧内容root,可以避免再次敲一遍发生错误。

在这里插入图片描述

5、sed ‘2s/root/XXX/g’ dir
指定了行号2,也可以使用正则符号

在这里插入图片描述

6、sed ‘4s/root//g’ dir
将root替换为空,实现了删除第四行所有root字符串的功能

在这里插入图片描述

六、=打印行号
1、sed -n ‘1=’ dir
打印第一行的行号

在这里插入图片描述

2、sed -n ‘/root/=’ dir
打印所有有root的内容的行号

在这里插入图片描述

3、sed -n ‘$=’ dir
打印指定文件最后一行的行号,可用于获取文件最大行行号

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值