我有一个看起来像这样的文本块:
<!-- BOF CLEAN -->
... a bunch of stuff
<!-- EOF CLEAN -->
我想删除整个块。什么是sed命令?
答案 0 :(得分:39)
$ cat text
abc
<!-- BOF CLEAN -->
... a bunch of stuff
<!-- EOF CLEAN -->
def
$ sed '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' text
abc
def
http://www.catonmat.net/blog/sed-one-liners-explained-part-three/
答案 1 :(得分:4)
要删除从<!-- BOF CLEAN -->
开始并包含<!-- EOF CLEAN -->
并包括sed -i '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' file_name;
的所有文本,请使用以下sed命令:
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<select ng-model="name">
<option>Peter</option>
<option>Jenny</option>
</select>
{{name}}
<script>
//Module Declaration
var app = angular.module('myApp',[]);
//Controller Declaration
app.controller('myCtrl',function($scope){
$scope.name="Please Select"
});
</script>
</body>
</html>
答案 2 :(得分:0)
这几天,我正在使用/s
修饰符来执行此操作。我没有注意到有人提到过。我使用的标记也没有空格
{bof-nf}
... a bunch of stuff
{eof-nf}
例如,要删除此阻止,请使用
$newcontent = preg_replace("/\{bof-nf\}(.*)\{eof-nf\}\\n/s", "", $newcontent);
要保留该块但删除标签,请使用
$newcontent = preg_replace("/\{bof-nf\}.*\\n/", "", $newcontent);
$newcontent = preg_replace("/\{eof-nf\}.*\\n/", "", $newcontent);