本文主要是介绍课时109:sed命令_基础实践_内容替换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2.1.2 内容替换
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习
基础知识
简介
sed的文本替换动作是使用频率最高的一种样式。它的基本表现样式如下:
命令格式:sed -i [替换格式] [文件名]源数据 | sed -i [替换格式]注意:替换命令的写法's###' ---> 's#原内容##' ---> 's#原内容#替换后内容#'隔离符号 / 可以更换成 @、#、!等符号
表现样式:样式一:替换指定匹配的内容sed -i '行号s#原内容#替换后内容#列号' [文件名]echo "源数据" | sed -i '行号s#原内容#替换后内容#列号'样式二:替换所有的内容sed -i 's#原内容#替换后内容#g' [文件名]echo "源数据" | sed -i '行号s#原内容#替换后内容#g'样式三: 替换指定的内容sed -i '行号s#原内容#&新增信息#列号' [文件名]- 这里的&符号代表源内容,实现的效果是 '原内容+新内容'
简单实践
实践1-替换每行首个匹配内容
格式:sed -i 's#原内容#替换后内容#' 文件名替换首每行的第1个sed为SED
[root@localhost ~]# sed -i 's#sed#SED#' sed.txt
[root@localhost ~]# cat sed.txt
nihao SED1 sed2 sed3
nihao SED4 sed5 sed6
nihao SED7 sed8 sed9
实践2-替换全部匹配内容
格式:sed -i 's#原内容#替换后内容#g' 文件名替换全部sed为des
[root@localhost ~]# sed -i 's#sed#SED#g' sed.txt
[root@localhost ~]# cat sed.txt
nihao SED1 SED2 SED3
nihao SED4 SED5 SED6
nihao SED7 SED8 SED9关于全部替换还有另外一种命令叫直接转换 y
[root@localhost ~]# sed 'y/SED/sed/' sed.txt
nihao sed1 sed2 sed3
nihao sed4 sed5 sed6
nihao sed7 sed8 sed9
实践3-指定行号替换首个匹配内容
格式:sed -i '行号s#原内容#替换后内容#' 文件名替换第2行的首个SED为sed
[root@localhost ~]# sed -i '2s#SED#sed#' sed.txt
[root@localhost ~]# cat sed.txt
nihao SED1 SED2 SED3
nihao sed4 SED5 SED6
nihao SED7 SED8 SED9
实践4-首行指定列号替换匹配内容
格式:sed -i 's#原内容#替换后内容#列号' 文件名替换每行的第2个SED为sed
[root@localhost ~]# sed -i 's#SED#sed#2' sed.txt
[root@localhost ~]# cat sed.txt
nihao SED1 sed2 SED3
nihao sed4 SED5 sed6
nihao SED7 sed8 SED9
实践5-指定行号列号匹配内容
格式:sed -i '行号s#原内容#替换后内容#列号' 文件名替换第3行的第2个SED为sed
[root@localhost ~]# sed -i '3s#SED#sed#2' sed.txt
[root@localhost ~]# cat sed.txt
nihao SED sed2 SED3
nihao sed4 SED5 sed6
nihao SED7 sed8 sed9
实践6-综合实践
借助正则的分组功能实现ip地址获取
[root@localhost ~]# ifconfig eth0 | sed -n '2p' | sed -r 's#.*inet (.*) net.*#\1#'
10.0.0.12
[root@localhost ~]# ifconfig eth0 | sed -n '2p' | sed -r 's#.*inet ##' | sed -r 's# net.*##'
10.0.0.12借助正则的分组功能实现信息的精确获取
[root@localhost ~]# echo '/etc/sysconfig/network' | sed -r 's#(.*\/)([^/]+\/?$)#\2#'
network
[root@localhost ~]# echo '/etc/sysconfig/network' | sed -r 's#(.*\/)([^/]+\/?$)#\1#'
/etc/sysconfig/
小结
这篇关于课时109:sed命令_基础实践_内容替换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!