簡體   English   中英

根據列值拆分文本文件(基因組數據),並保留標題行

[英]split text file (Genome data) based on column values keeping header line

我有以下格式的大基因組數據文件(.txt)。 我想根據染色體列chr1, chr2..chrX,chrY等進行拆分,以使標題行保留在所有拆分的文件中。 如何使用unix / linux命令執行此操作?

基因組數據

 variantId  chromosome   begin  end
    1            1          33223  34343
    2            2          44543  46444
    3            2          55566  59999 
    4            3          33445  55666

結果

file.chr1.txt
variantId  chromosome   begin  end
1            1          33223  34343


file.chr2.txt
variantId  chromosome   begin  end
2            2          44543  46444
3            2          55566  59999 

file.chr3.txt
variantId  chromosome   begin  end
4            3          33445  55666

這些數據是否用於人類基因組(即始終為46條染色體)? 如果是這樣,這是怎么回事:

for chr in $(seq 1 46)
do
    head -n1 data.txt >chr$chr.txt
done
awk 'NR != 1 { print $0 >>("chr"$2".txt") }' data.txt

(根據以上@Sasha的評論,這是第二次編輯。)

注意,在GNU awk上顯然不需要括號("chr"$2".txt") ,但在我的OS X版本的awk上卻不需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM