所以到目前爲止我得到的是一個Bed-Table文件,這個文件的問題是,在某些行中,值在第2列中的值大於第3列中的值。AWK:需要交換兩列之間的值,如果左邊的一個比右邊的小
awk中是否有任何一個班輪,它們將交換這兩個值,以便表格總是在列2中獲得較小的值,在列3中獲得較大的值?
chr01 100 200
chr02 300 150
所以在這個例子中,所需的輸出將是:
chr01 100 200
chr02 150 300
所以到目前爲止我得到的是一個Bed-Table文件,這個文件的問題是,在某些行中,值在第2列中的值大於第3列中的值。AWK:需要交換兩列之間的值,如果左邊的一個比右邊的小
awk中是否有任何一個班輪,它們將交換這兩個值,以便表格總是在列2中獲得較小的值,在列3中獲得較大的值?
chr01 100 200
chr02 300 150
所以在這個例子中,所需的輸出將是:
chr01 100 200
chr02 150 300
只是交換列,如果他們是在錯誤的訂單,使用臨時變量:
$ awk '$2 > $3 { temp = $3; $3 = $2; $2 = temp } 1' OFS='\t' file
1
最後是{print}
的通用速記,所以每行都打印出來。將輸出字段分隔符OFS
設置爲製表符保留了格式。
或者:
$ awk -F'\t' '$2 > $3 { $0 = $1 FS $3 FS $2 } 1' file
如果必要重新排列行的內容,使用輸入字段分隔符FS
它已被設置爲製表符。
你可以用awk,
awk '$2>$3{x=$3;$3=$2;$2=x}1' file
該命令會切換所需的值,但它會導致錯誤,因爲它會以某種方式刪除列之間的選項卡 – JadenBlaine
'awk'$ 2> $ 3 {x = $ 3; $ 3 = $ 2; $ 2 = x} 1' sed的/ \ +/\ t/g'' –
awk '{ printf("%s %d %d\n",$1,($2 < $3) ? $2 : $3,($2 < $3) ? $3 : $2) }' file
這是一張牀單文件嗎?即使谷歌似乎並不現在。 –
牀文件是一張表格,其中包含基因組內DNA序列的座標。您可以使用它從基因組中提取序列,或者進行分析,如是否有基因,這些基因彼此接近或序列相互重疊。 – JadenBlaine