从文件中删除重复的行块

use*_*790 3 bash shell

我有这样的特定文件结构

>ID1
data about ID1....
................
................

>ID2
data about ID2....
................
................
................
................
>ID3
data about ID3....
................
................
...............

>ID1
data about ID1....
................
>ID5
data about ID5....
................
................
Run Code Online (Sandbox Code Playgroud)

我想删除这些重复的ID块.例如,在上述情况下,它是ID1.应该注意的是,只有ID部分相同,之后的数据可能不同.但是,我想保留第一个并删除所有其他的.我怎样才能以shell脚本的方式做到这一点?

Kev*_*vin 5

在awk

awk '/^>/{p=!($0 in a);a[$0]}p' file1
Run Code Online (Sandbox Code Playgroud)