大家好,我是一新手,来问一个sed的问题。。。
时间:2011-01-27
来源:互联网
sed '{
:start
/^\n*$/{ $d; N; b start }
}'
但是替换内容里面的\n能被检查到吗?因为最先开始sed读取一行文本,这行文本是不含\n的。
如果能够查到,那么为什么以下的脚本不能成功呢:
$cat data
this is the first line.
line
line
this is the end line.
$sed -n '/^line\nline$/p' data
$ #没有输出
作者: logic_pn 发布时间: 2011-01-27
作者: logic_pn 发布时间: 2011-01-27
回复 logic_pn
\n*也匹配空。
建议你先看正则基础。
多行模式空间才会有\n,常见的是单行模式空间,没有\n。
作者: blackold 发布时间: 2011-01-27
作者: lkk2003rty 发布时间: 2011-01-27
作者: logic_pn 发布时间: 2011-01-27
首先你要搞清楚/^\n*$/这个正则是什么东西。
估计你也不看前面的回帖。
/^\n*$/匹配行首,后接0个或多个\n,后接行尾。换句话说,/^\n*$/会匹配一个或多个连续"真"空行。
如果输入文件有空行,就匹配了。
作者: blackold 发布时间: 2011-01-27
有点不明白这个问题:
比如/^\n$/这个(先去掉*),至少在pattern space 里面有个\n才能匹配到吧
但是最开始是单行模式,没有\n,\n是至少在一个N命令后才能插入pattern space 里面的
那么第一次是如何匹配到的呢?
作者: logic_pn 发布时间: 2011-01-27
去掉*就不会匹配到了。
你怎么知道它可以匹配到?
作者: blackold 发布时间: 2011-01-27
第一次就是因为有那个 * 在所以才匹配到的
作者: lkk2003rty 发布时间: 2011-01-27
那为什么\n*就可以配到,\n就不行?一个匹配不到,很多该从何谈起?
这个是不是一种特殊用法阿?
作者: logic_pn 发布时间: 2011-01-27
作者: logic_pn 发布时间: 2011-01-27
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28