Awk

複製床文件的列以生成另一個床文件

  • February 6, 2020

我有一個床文件基因組_cov.bed 指定基因組上每個位置的基因組覆蓋率。列是;腳手架,位置,覆蓋範圍。

scaffold_1      1       0
scaffold_1      2       0
scaffold_1      3       32
scaffold_1      4       34
scaffold_1      5       34
scaffold_1      6       39
scaffold_1      7       39
scaffold_1      8       53
scaffold_1      9       58
scaffold_1      10      60

我想製作另一個複制第二列的床文件。

當我使用 cut -f 時,我無法複製列,當我使用 awk 命令時:

awk '{print $1,$2,$2,$3}' genome_cov.bed > genome_cov2.bed

它不會產生一個床文件,最終看起來像這樣:

scaffold_1 1 1 0
scaffold_1 2 2 0
scaffold_1 3 3 32
scaffold_1 4 4 34
scaffold_1 5 5 34
scaffold_1 6 6 39
scaffold_1 7 7 39
scaffold_1 8 8 53
scaffold_1 9 9 58
scaffold_1 10 10 60

您可以將輸出欄位分隔符設置為製表符:

awk '{print $1,$2,$2,$3}' OFS='\t' genome_cov.bed

或用於printf明確指定格式

awk '{printf "%s\t%s\t%s\t%s\n",$1,$2,$2,$3}' genome_cov.bed

引用自:https://unix.stackexchange.com/questions/566027