标签:22 nbr 命令 sed 空间 SED root localhost
SED命令
SED命令
目录
- Sed命令
- 多行模式空间
- 单行模式空间
Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等
单行模式空间
语法
sed [-hnV][-e<script>][-f<script文件>][文本文件]
参数
- -n 仅显示script处理后的结果。
- -i 直接修改读取文件
- -e 以选项中指定的script来处理输入的文本文件。
- -f 以选项中指定的script文件来处理输入的文本文件。
- -h 或--help 显示帮助。
动作
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现,目前的下一行。
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行。
- d :删除,因为是删除,所以 d 后面通常不接任何东西。
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现,目前的上一行。
- p :打印,亦即将某个选择的数据印出,通常 p 会与参数 sed -n 一起运行。
- s :取代,可以直接进行取代的工作,通常这个 s 的动作可以搭配正则表达式。
- n :读取匹配参数的下面的所有行
- y:把一个或多个字符替换成另一个字符
[root@localhost ~]# cat nbr
1
2
3
//a,新增
[root@localhost ~]# sed '3a4' nbr #在第3行下添加4
1
2
3
4
[root@localhost ~]# sed '/3/a4' nbr #在匹配3的下一行添加4
1
2
3
4
//c,取代
[root@localhost ~]# sed '1c2' nbr #将第一行取代为2
2
2
3
[root@localhost ~]# sed '/1/c2' nbr #匹配参数1取代为2
2
2
3
//d,删除
[root@localhost ~]# sed '3d' nbr #删除第三行
1
2
[root@localhost ~]# sed '/1/d' nbr #匹配参数1删除
2
3
//i,插入
[root@localhost ~]# sed '3i3' nbr #在第三行插入3
1
2
3
3
[root@localhost ~]# sed '/1/i1' nbr #匹配参数的前一行插入1
1
1
2
3
//p,打印
[root@localhost ~]# sed -n '1p' nbr #打印第一行
1
[root@localhost ~]# sed -n '/3/p' nbr #打印指定参数3
3
[root@localhost ~]# cat nbr
1
22
333
//s,取代
#将匹配到的1取代为3
[root@localhost ~]# sed 's/1/3/' nbr
3
22
333
#当一行出现多个相同的参数,就会出现只能取代一个的问题
[root@localhost ~]# sed 's/3/2/' nbr
1
22
233
//g 行内全面替换
#想要讲此行的所有相同的参数都取代,需要加上g
[root@localhost ~]# sed 's/3/2/g' nbr
1
22
222
//n
#匹配参数1下面的所有行打印出来
[root@localhost ~]# sed -n '/1/n;p' nbr
22
333
[root@localhost ~]# cat nbr
1 a
22 ab
333 abc
//y
#将第二和第三行的a换成A,c换成B
[root@localhost ~]# sed '2,3y/ac/AB/' nbr
1 a
22 Ab
333 AbB
多行模式空间
- N:读取匹配到的行的下一行追加至模式空间
- P:打印模式空间开端至\n内容,并追加到默认输出之前
- D:只删除模式空间的第一行。
示例:
[root@localhost ~]# cat nbr
here are examples of the UNIX
System. Where UNIX
System appears, it should be the UNIX
Operating System.
[root@localhost ~]# sed '/UNIX$/{N;/\nSystem/s// Operating &/;P;D}' nbr
here are examples of the UNIX Operating
System. Where UNIX Operating
System appears, it should be the UNIX
Operating System.
命令 | 缩写 | 功能 |
---|---|---|
Hold | h | 将模式空间的内容复制到保持空间 |
Hold | H | 将模式空间的内容追加到保持空间 |
Get | g | 将保持空间的内容追复制模式空间 |
Get | G | 将保持空间的内容追追加模式空间 |
Exchange | x | 交换保持空间和模式空间的内容 |
示例:
[root@localhost ~]# cat 123
1
2
11
22
111
222
#匹配有1的行,h将将模式空间的内容追加到保持空间,d删除模式空间的内容
[root@localhost ~]# sed '/1/{h;d}' 123
2
22
222
此时
模式空间:
空
保持空间:
1
11
111
#匹配有2的行,G将保持空间的内容追加到模式空间
[root@localhost ~]# sed '/1/{h;d};/2/{G}' 123
2
1
22
11
222
111
此时
模式空间:
2
1
22
11
222
111
标签:22,nbr,命令,sed,空间,SED,root,localhost 来源: https://www.cnblogs.com/nie123/p/16698500.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。