前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sed学习笔记-3(命令DPhHgGxb

sed学习笔记-3(命令DPhHgGxb

作者头像
py3study
发布2020-01-10 16:04:49
3710
发布2020-01-10 16:04:49
举报
文章被收录于专栏:python3
代码语言:javascript
复制
0606:
多行删除
d删除模式空间内容,导致读入新行
D删除模式空间第一行(直到第一个被嵌入的换行符)重点:它不会读入新行,相反它返回到脚本的顶端,将这些指令应用于模式空间剩余的内容!
P打印模式空间的第一行,用法见sed学习笔记-2的多行模式替换
例:保留一个空行
[root@localhost upload]# cat 1
a
b
c
d
e
[root@localhost upload]# cat 1.sed
/^$/ {
N
/^\n$/D
}
[root@localhost upload]# sed -f 1.sed 1
a
b
c
d
e
保持空间:
h复制模式空间内容到保持空间  覆盖
H复制模式空间内容到保持空间  追加
g复制保持空间内容到模式空间  覆盖
G复制保持空间内容到模式空间  追加
x交换两个空间的内容
例1:
[root@localhost upload]# cat 1
aaaaaaaaaaa
bbbbbbbbbbbbb
cccccccccccc
dddddddddddddd
eeeeeeeeeeeeee
ffffffffffff
[root@localhost upload]# cat 1.sed
#本脚本中对于空行的操作一定要在脚本的顶部
$ {
    /^$/! {
        H
        s/.*//
    }
}
/^$/! {
H
d
}
/^$/ {
x
s/^\n/<p>/
s/$/<\/p>/
}
[root@localhost upload]# sed -f 1.sed  1
<p>aaaaaaaaaaa
bbbbbbbbbbbbb
cccccccccccc</p>
<p>dddddddddddddd
eeeeeeeeeeeeee</p>
<p>ffffffffffff</p>
--------------------------------------------------------------------
流程控制命令:
b
1、"b<空格>标签" 跳转到指定标签下的语句(冒号开头的标签)
2、"b不代标签参数" 跳转到脚本结尾(不执行脚本剩下语句)
t
1、"t<空格>标签"如果上一个语句成功执行,则执行指定标签下的语句
2、"t不代标签参数" 跳转到文件结尾(不执行脚本剩下语句)
例:随便一个过程
:begin
s/a/A/
/a/b begin
/B/
t end
b
:end
D

-------------

n和N不打使执行权限回到顶部,而是只是单纯的读取下一行、追加下一行到当前的模式空间,从下一个命令接着处理。

2.txt

代码语言:javascript
复制
[root@centos-6 bak]# sed -f 2.sed -n 2.txt
ccc
aaaa
cccc
aaac

N

代码语言:javascript
复制
[root@centos-6 bak]# cat 2.sed
#!/bin/sed -f
/c/ {
    s/a/A/g
    :notfindpath
    N
    p
}

n

代码语言:javascript
复制
[root@centos-6 bak]# sed -f 2.sed -n 2.txt
aaaa
aaac
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档