AWK打印特定行和标题

AWK打印特定行和标题,awk,Awk,我有一个标签文件,包含1000多行和一个标题。样本由第1列中的值定义。我想按第1列将文件拆分为多个文件,但也包括头文件。目前,我可以使用以下工具轻松拆分为文件: awk -F'\t' '{print>$1}' file.tab 这将给我x个文件,每个文件包含与每个示例相关的所有行。但是,我还想在每个文件中包含标题,即第1行。我该怎么做呢 谢谢。命令: awk -F'\t' 'NR==1 { H=$0; next } {if(!d[$1]) print H>$1; print>

我有一个标签文件,包含1000多行和一个标题。样本由第1列中的值定义。我想按第1列将文件拆分为多个文件,但也包括头文件。目前,我可以使用以下工具轻松拆分为文件:

awk -F'\t' '{print>$1}' file.tab
这将给我x个文件,每个文件包含与每个示例相关的所有行。但是,我还想在每个文件中包含标题,即第1行。我该怎么做呢

谢谢。

命令:

awk -F'\t' 'NR==1 { H=$0; next } {if(!d[$1]) print H>$1; print>$1; d[$1]=1 }' file.tab
输入示例:

FN  DATA 
1.txt       abc
2.txt       bcd
1.txt       xyz
1.txt:

FN  DATA 
1.txt       abc
1.txt       xyz
2.txt:

FN  DATA 
2.txt       bcd
命令:

awk -F'\t' 'NR==1 { H=$0; next } {if(!d[$1]) print H>$1; print>$1; d[$1]=1 }' file.tab
输入示例:

FN  DATA 
1.txt       abc
2.txt       bcd
1.txt       xyz
1.txt:

FN  DATA 
1.txt       abc
1.txt       xyz
2.txt:

FN  DATA 
2.txt       bcd
另一个类似的awk

诀窍是跟踪由文件名键索引的打印头。如果文件按键排序,则有一个更简单的解决方案。

另一个类似的awk


诀窍是跟踪由文件名键索引的打印头。如果文件按键排序,则有一个更简单的解决方案。

这太神奇了!这太棒了!