注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
UNIX/Linux Shell
» sed -n "/str1/,/str2/p" file 到底是什么意思?(附例)
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
ai20110304
发短消息
加为好友
ai20110304
当前离线
UID
73207
帖子
112
精华
0
积分
124
PB
124
技术
0
捐助
0
阅读权限
20
在线时间
261 小时
注册时间
2015-10-10
最后登录
2022-9-30
一级士官
帖子
112
积分
124
技术
0
捐助
0
注册时间
2015-10-10
1
楼
跳转到
»
发表于 2018-9-4 09:05
|
显示全部帖子
回复
1#
踏沙行
sed 默认的命令执行范围是全局编辑的,如果不明确指定行的话,命令会在所有输入行上执行,如果想仅对其中部分行执行命令,可以使用地址限制。如果给了 2 个地址,即地址对(地址范围),则命令匹配的这个地址范围内执行,但是需要注意的是:对于像 "addr1,addr2" 这种形式的地址匹配,如果addr1 匹配,则匹配成功,"开关"打开,在该行上执行命令,此时不管 addr2 是否匹配,即使 addr2 在 addr1 这一行之前;接下来读入下一行,如果addr2 匹配,则执行命令,同样开关"关闭";如果 addr2 在 addr1 之后,则一直处理到匹配为止,换句话说,如果 addr2 一直不匹配,则开关一直不关闭,因此会持续执行命令到最后一行。
第四行过后,进行第二次匹配,以第一个地址匹配开始,不满足第二个条件,继续执行到文件结束。
我就是我,不一样的烟火!
TOP
ai20110304
发短消息
加为好友
ai20110304
当前离线
UID
73207
帖子
112
精华
0
积分
124
PB
124
技术
0
捐助
0
阅读权限
20
在线时间
261 小时
注册时间
2015-10-10
最后登录
2022-9-30
一级士官
帖子
112
积分
124
技术
0
捐助
0
注册时间
2015-10-10
2
楼
发表于 2018-9-4 15:16
|
显示全部帖子
回复
4#
Batcher
第一个开启多条命令执行:
sed -n "/at/,/is/p; /is/q" 1.txt
复制代码
第二个是或的关系,支持扩展正则表达式 | 符号,需用-r 选项:
sed -n -r "/(at|is)/p" 1.txt
复制代码
我就是我,不一样的烟火!
TOP
返回列表
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]