根据tsv文件中的值重命名文件

时间:2018-04-23 12:49:48

标签: bash csv

我的输入是一个包含5列的tsv文件。它的列名为'Position''A','B'等,它们在tsv中偶尔重复。如何拆分此tsv文件,以便每个文件都有一组列标题和数据不足,但不是下一组列标题。

输入:

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

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

1 个答案:

答案 0 :(得分:1)

您应该从最后一列派生文件名:

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