0

我有一个正在编辑的文本文件(在我的例子中是一个 JMeter XML),我使用 ed 来查找标记 XML 部分的第一行和最后一行的两行。

如何删除两个搜索匹配项之间的行?

示例文件:

1 <hashTree>
2 <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
3 <stringProp name="ConstantTimer.delay">300</stringProp>
4 </ConstantTimer>
6 </hashTree>

我想删除包含的第 2-4 行。

4

2 回答 2

2

如果你想做所有这些,你可以使用g命令找到开始,然后使用+开始在下一行,然后向前搜索到结束标记,并使用-向后移动,然后删除结果内容:

g/<hashTree>/+,/<\/hashTree>/-d

请注意,这假设每个<hashTree>块都有一些要删除的内容。如果有任何空块,最终可能会删除比您想要的更多的内容。

于 2017-03-24T12:41:14.987 回答
0

您可以使用以下代码标记找到的行并在两个标记之间执行删除

1                    <---- Jump to line 1
/ConstantTimer       <---- Search for the first 'ConstantTimer'
kx                   <---- Mark it as 'x'
/ConstantTimer       <---- Search for the second 'ConstantTimer'
ky                   <---- Mark it as 'y'
'x,'yd               <---- delete between the two marks 'x and 'y
w                    <---- save the changes
q                    <---- quit ed
于 2017-03-23T17:54:42.697 回答