linux下如何替换跨多行的字符串

例:文件file有字符串:abcdefghijklmnopqrstuvwxyz(省略多行)1234567890我想通过替换字符串并结合正则表达式,将文件中hijklmn一... 例:
文件file有字符串:
abcdefghijklmn
opqrstuvwxyz
(省略多行)
123456
7890
我想通过替换字符串并结合正则表达式,将文件中hijklmn一直到456的字符串替换为abc字符串,执行结果为:
abcdefgabc
7890
请问如何实现? 最好不需要打开文件就能实现的,如果sed命令能够实现最好。非常感谢!!
展开
 我来答
b731z731
2013-05-02 · TA获得超过139个赞
知道答主
回答量:17
采纳率:0%
帮助的人:29.4万
展开全部

诸多原因,使用前请自行准确匹配两个关键字符串,再拿掉"-i"选项进行输出测试.如下脚本使用了"-i"选项将是对操作文件进行直接的更改,此脚本没有为操作文件进行备份,所以说是个危险的动作,请谨慎参考!

GNU shell sed 4版测试通过. 单行脚本如下:

sed -i -e ':label; /hijklmn/,/456/ { /456/! { $! { N; b label }; }; s/hijklmn.*456/abc/; }' file
追问
测试成功,非常感谢!   太完美了!!
百度网友cc95424
2013-05-07 · TA获得超过134个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:112万
展开全部
少年 你要给出一个抽象的表示啊 这样不好给你答案
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式