sed N和$!N 的理解使用
2016-03-09 16:02
169 查看
用图示详细说明。
1.有123.txt文件,内容如下:
我的想法是把hello world 替换成 halo
2.用N命令,测试替换,如下:
N的作用是追加下一行到pattern space(我的理解是临时存储空间)。
具体命令执行过程分析:首先读入第一行 hello到pattern space,然后命令N,追加下一行 world! my name is
am.到pattern space。注意:这个时候pattern space里有两行,就是:hello 和 world! my name is am.两行。然后执行
s/\n//;这个命令是把两行变成一行。然后再执行s/hello world/halo/。执行命令结束后,清空pattern space。读取新的一行
进入pattern space,这里是读取第三行 hello.然后又开始以上的操作。直到读完全不的数据。
注意问题:123.txt里的最后一行的hello world 没有被替换掉。
产生问题原因分析:123.txt总共9行,sed N命令毎执行一次处理两行,第9行是单行,执行到
这一行,因为N命令,也需要追加一行,没能执行成功N,所以替换失败。
3.$!N。用这个命令可以解决最后一行未能替换的问题。图示如下:
$!N命令解释:最后一行不执行N命令。
4.整个操作图示:
本文出自 “gome学习” 博客,请务必保留此出处http://goome.blog.51cto.com/4045241/1749171
1.有123.txt文件,内容如下:
我的想法是把hello world 替换成 halo
2.用N命令,测试替换,如下:
N的作用是追加下一行到pattern space(我的理解是临时存储空间)。
具体命令执行过程分析:首先读入第一行 hello到pattern space,然后命令N,追加下一行 world! my name is
am.到pattern space。注意:这个时候pattern space里有两行,就是:hello 和 world! my name is am.两行。然后执行
s/\n//;这个命令是把两行变成一行。然后再执行s/hello world/halo/。执行命令结束后,清空pattern space。读取新的一行
进入pattern space,这里是读取第三行 hello.然后又开始以上的操作。直到读完全不的数据。
注意问题:123.txt里的最后一行的hello world 没有被替换掉。
产生问题原因分析:123.txt总共9行,sed N命令毎执行一次处理两行,第9行是单行,执行到
这一行,因为N命令,也需要追加一行,没能执行成功N,所以替换失败。
3.$!N。用这个命令可以解决最后一行未能替换的问题。图示如下:
$!N命令解释:最后一行不执行N命令。
4.整个操作图示:
本文出自 “gome学习” 博客,请务必保留此出处http://goome.blog.51cto.com/4045241/1749171
相关文章推荐
- 求连续子数组的最大和
- 华为OJ高精度数的加减法
- APP测试
- 视频直播应用的竞争分析
- ArtifactdescriptorException: failed to read artifact for xxxxxx.
- 对反编译的Android apk 并再次打包
- Java中String类的方法及说明
- Device eth0 does not seem to be present, delaying initialization(vmware 拷贝引起)
- Android 反编译
- C#动态选择调用某个指定内部函数
- AJAX基础总结(参考w3school)
- 读书笔记---HTML5实战 MARCO CASARIO(后六章)
- org.w3c.dom(java dom)解析XML文档
- css3技巧——产品列表之鼠标滑过效果(一)
- 3月7日高项作业(信息化基础和信息系统服务管理)
- codeforces 630B Moore's Law
- ORA-01017: invalid username/password; logon denied
- Android之数据统计TalkingData集成
- 81. Search in Rotated Sorted Array II
- 解析nginx负载均衡