正则表达式 – shell脚本:搜索并替换多行
发布时间:2020-12-14 05:48:12 所属栏目:百科 来源:网络整理
导读:我正在寻找一种通过 shell脚本搜索和替换多行的方法.这就是我想要做的: source:[stuff before]!--WIERD_SPECIAL_COMMENT_BEGIN-- [stuff here,possibly multiple lines.!--WIERD_SPECIAL_COMMENT_END--[stuff after] target:[stuff before][new content][st
我正在寻找一种通过
shell脚本搜索和替换多行的方法.这就是我想要做的:
source: [stuff before] <!--WIERD_SPECIAL_COMMENT_BEGIN--> [stuff here,possibly multiple lines. <!--WIERD_SPECIAL_COMMENT_END--> [stuff after] target: [stuff before] [new content] [stuff after] 简而言之,我想删除它们之间的注释和所有内容,并替换为一些新内容.基本上,我想在多行上执行一个简单的sed命令,如果可能的话,只使用一些基本的* nix工具,不需要额外的脚本语言. 解决方法
如果您只需要匹配完整的行,那么您可以执行此任务
AWK.就像是: awk -v NEWTEXT=foo 'BEGIN{n=0} /COMMENT_BEGIN/ {n=1} {if (n==0) {print $0}} /COMMENT_END/ {print NEWTEXT; n=0}' < myfile.txt 如果文件格式不正确,请注释 #!/usr/bin/perl $newtext = "foonbar"; $/ = ''; # no input separator so whole file is read. $s = <>; # read whole file from stdin $startPattern = quotemeta('<!--WIERD_SPECIAL_COMMENT_BEGIN-->'); $endPattern = quotemeta('<!--WIERD_SPECIAL_COMMENT_END-->'); $pattern = $startPattern . '.+' . $endPattern; $s =~ s/$pattern/$newtext/sg; print $s; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c – Windows API gui设计师?
- 使用 Oracle Enterprise Manager Cloud Control 12c 安装和
- c – 重载运算符<<用于文本呈现
- C++面试常见问题整理汇总
- Cocos2d-x 3.x 无法打开包含文件extensions/ExtensionExpor
- ruby-on-rails-3 – Heroku Cedar堆栈和Rails 3.1 RC5不显示
- reactjs – React.js – ForEach作为一流的组件?
- 无法创建链接服务器 "ORCL" 的 OLE DB 访问接口 &#
- 【低耦合集成TabBarController】最低只需传两个数组即可完成
- c# – 为什么Dictionary.ContainsKey抛出ArgumentNullExcep