我正在尝试使用 sed 编辑一些文本文件。在文本文件中有两行以string
. 我只想删除第一个,然后说 3 行。我怎么能用 sed 做到这一点?
输入:
string
line1
line2
line3
####
other lines
####
string
line4
line5
line6
输出:
###
other lines
###
string
line4
line5
line6
我已经尝试过sed '/string/,+3d'
,但它删除了string
我不想要的 s 和 3 行。
如果您不是绝对需要使用
sed
,这里有一些替代方案:或 Perl:
Perl 的优势在于它具有与原地编辑相同的
-i
选项sed
(实际上,该选项起源于 Perl 并被复制到):sed
获取第一次出现的行
string
号使用
sed
删除行范围开始string
和结束string's line number + 3)