[英]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.