如何拆分unix文件中的数据

Bha*_*ash 2 unix linux awk grep sed

我在Unix(solaris)系统中有一个文件,其数据如下

[TYPEA]:/home/typeb/file1.dat
[TYPEB]:/home/typeb/file2.dat
[TYPEB]:/home/typeb/file3.dat
[TYPE_C]:/home/type_d/file4.dat
[TYPE_C]:/home/type_d/file5.dat
[TYPE_C]:/home/type_d/file6.dat
Run Code Online (Sandbox Code Playgroud)

我想把下面的标题分开

[TYPEA]
/home/typeb/file1.dat
[TYPEB]
/home/typeb/file2.dat
/home/typeb/file3.dat
[TYPE_C]
/home/type_d/file4.dat
/home/type_d/file5.dat
/home/type_d/file6.dat
Run Code Online (Sandbox Code Playgroud)

具有类似类型的文件必须属于一种类型.如果没有硬编码,请帮助我实现这一目标.

tri*_*eee 5

假设输入按类型排序,如示例所示,

awk -F : '$1 != prev { print $1 } { print $2; prev=$1 }' file
Run Code Online (Sandbox Code Playgroud)

如果有超过2个字段,则需要调整第二个子句.