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

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行

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    原文作者:优秀的邓宗磊
    原文地址: https://blog.csdn.net/ganfanren00001/article/details/122765854
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞