【发布时间】:2012-08-11 15:34:16
【问题描述】:
好的,这是一个棘手的问题...我有一个文件 1,我想创建一个文件 2,其中只包含文件 1 中的特定文本。
random useless text
#START
random IMPORTANT text
#END
random useless text
random useless text
#START
random IMPORTANT text
#END
random useless text
我想提取第一对#START 和#END(包括#'s)之间的文本,但忽略第二对#START 和#END。请注意,#START #END 对在同一个文件中出现了两次。我只想要第一对之间的内容(包括#的符号)。
说了这么多,我应该只有这个字面结果(仅来自第一对#START #END:
#START
random IMPORTANT text
#END
在另一篇文章中有人使用:
sed -n "/这是令牌 1/,/这是令牌 2/p"
这是一种删除单个配对字符串“this is a token 1”和“this is a token 2”的方法
但是当我在这个 sed 中使用“#START”和“#END”时,它会保留 #START 和 #END 对。
注意:第一个 #START #END 之间的内容总是与第二个 #START #END 之间的内容不同。
【问题讨论】:
-
什么是令牌?它们是如何分开的?