Bash 基于tsv文件中的值重命名文件

Bash 基于tsv文件中的值重命名文件,bash,csv,Bash,Csv,我的输入是一个有5列的tsv文件。它的列名为“位置”“A”“B”等等,在tsv中不时重复。如何拆分此tsv文件,使每个文件都有一组列标题和neth下的数据,而不是下一组列标题 输入: Position A B C D Seg2 1 9 0 0 0 0 2 0 0 16 0 0 3 0 19 0 0 0 4 0 0 18 0 0 Position A B C D Seg1 1

我的输入是一个有5列的tsv文件。它的列名为“位置”“A”“B”等等,在tsv中不时重复。如何拆分此tsv文件,使每个文件都有一组列标题和neth下的数据,而不是下一组列标题

输入:

Position    A   B   C   D   Seg2
1   9   0   0   0   0
2   0   0   16  0   0
3   0   19  0   0   0
4   0   0   18  0   0
Position    A   B   C   D   Seg1
1   9   0   0   0   1
2   0   0   22  0   0
3   0   19  0   0   0
4   0   0   19  0   0
5   39  0   0   0   0
6   43  0   0   0   0
理想的输出是将上述文件分为两个tsv文件,一个名为Seg1.tsv,另一个名为Seg2.tsv

我所拥有的:

awk '/Position/{x="F"++i;}{print > x;}' file.tsv

如何修改上述内容以重命名文件?

您只需从最后一列派生文件名即可:

awk '/Position/{x=$6".tsv"}{print > x;}' file.tsv