在字符串第二次出现后删除所有内容

时间:2019-12-05 11:48:51

标签: sed

您好,我有一个文件,例如:

>Inn_can_OIOIEiO
ASNSJNSJSNSS
SNSJJISBSI
SUBSIUBSIBS
>Kio_can_OIOIEiE
ASNSJNSJSNSS
SNSJJISBSI
SUBSIUBSIBS
>Ven_can_OIOIEiB
ASNSJNSJSNSS
SNSJJISBSI
SUBSIUBSIBS
>Lop_can_OIOIEiE
ASNSJNSJSNSS
SNSJJISBSI
SUBSIUBSIBS
>Ven_can_OIOIEiE
ASNSJNSJSNSS
SNSJJISBSI
SUBSIUBSIBS

,我想在第二个'>Ven_can'发生后删除所有内容并获取:

>Inn_can_OIOIEiO
ASNSJNSJSNSS
SNSJJISBSI
SUBSIUBSIBS
>Kio_can_OIOIEiE
ASNSJNSJSNSS
SNSJJISBSI
SUBSIUBSIBS
>Ven_can_OIOIEiB
ASNSJNSJSNSS
SNSJJISBSI
SUBSIUBSIBS
>Lop_can_OIOIEiE
ASNSJNSJSNSS
SNSJJISBSI
SUBSIUBSIBS

有人有以sed为例的想法吗? 谢谢您的帮助

我现在仅介绍如何使用

删除字符后的所有内容
sed '1,@>Ven_can@!d' file1

1 个答案:

答案 0 :(得分:0)

这可能对您有用(GNU sed):

sed '/Ven_can/{x;/./Q;x;h}' file

如果该行是字符串Ven_can的第二次出现,则不打印当前行退出。

相关问题