Linux三剑客之一sed
2021/12/22 7:21:19
本文主要是介绍Linux三剑客之一sed,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
sed
定义
流媒体编辑器(修改文本)
格式
sed [参数] '处理规则' [操作对象]
处理规则:正则
参数
-e :允许多项编辑
每多编辑一行则在那行操作前加一个-e
也就是说 编辑多少行就有多少个-e
-n :取消默认输出
-i :就地编辑(实时编辑直接生成结果)
-r :支持拓展正则(就是自定义正则)
-f :指定sed匹配规则文件
定位(锁定文本位置)
通过数字或者正则筛选符合要求的数据所在行数
1.数字定位法
格式:
sed '[行数] [模式]' [待处理文本]
eg:
sed '3d' 1.txt
sed '2,3d' 1.txt
2.正则定位法
格式:
sed '[正则表达式] [模式]' [待处理文本]
eg:
sed '/^g/d' 1.txt
3.数字和正则
格式:
sed '[数字,正则表达式] [模式]' [待处理文本]
eg:
sed '3,/^g/d' 1.txt
4.正则和正则
格式:
sed '[正则表达式,正则表达式] [模式]' [待处理文本]
eg:
sed '/^g/,/^j/d' 1.txt
模式
d :删除
sed '[定位][模式d]' [待处理文件]
sed '3d' 1.txt
p :打印
sed '[定位][模式p]' [待处理文件]
sed '/^g/p' 1.txt
a : 在当前行下一行添加一行或多行
sed '[定位][模式a][添加内容]' [待处理文件]
sed '2axxx' 1.txt
c :用新文本修改(替换)当前行
sed '[定位][模式c][新内容]' [待处理文件]
sed '2cxxx' 1.txt
i :在当前行插入文本,当前行向下移一行(单独使用时)
sed '[定位][模式i][添加内容]' [待处理文件]
sed '2ixxx' 1.txt
r : 将指定文本中内容读到待处理文本中
sed '[定位][模式r][指定文本]' [待处理文件]
sed '2r r.txt' 1.txt
w : 将待处理文本指定行写入指定文件中
sed '[定位][模式w][指定文本]' [待处理文件]
sed '2w r.txt' 1.txt
y : 将字符替换成另一个字符
sed '[定位][模式y]#[旧字符]#[新字符]#' [待处理文件]
一个一个字符替换 可以多个字符一起处理
sed '2y/fa/FA/' 1.txt
s : 将字符串替换成另一个字符串(每一行只替换一次)
sed '[定位][模式s]#[旧字符串]#[新字符串]#' [待处理文件]
sed 's/11/22/' 1.txt
g : 全部执行(符合正则的都执行)
sed '[定位][模式s]#[旧字符串]#[新字符串]#[模式g]' [待处理文件]
sed 's/11/22/g' 1.txt
i : 忽略大小写(跟 s 模式一起使用时)
sed '[定位][模式s]#[旧字符串]#[新字符串]#[模式g][模式i]' [待处理文件]
sed 's/11/22/gi' 1.txt
& :代表前面匹配到的内容
案例
案例1:将nginx.conf中的注释行全部去掉
[root@localhost ~]# sed '/^ *#/d' /etc/nginx/nginx.conf
解:把
案例2:将nginx.conf中每一行之前增加注释
[root@localhost ~]# sed 's/.*/# &/g' /etc/nginx/nginx.conf
案例3:要求一键修改本机的ip
192.168.15.100 ---> 192.168.15.101
172.16.1.100 ---> 172.16.1.101
[root@localhost ~]# sed -i 's#.100#.101#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
案例4:将/etc/passwd中的root修改成ROOT
[root@localhost ~]# sed -i 's#root#ROOT#g' /etc/passwd
END
这篇关于Linux三剑客之一sed的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法