我想讓我的第二列爲非負值,因爲某些值是正值和負值,所以嘗試使用AWK函數。使用AWK獲得非負值
我在牀檔六列我使用下面的命令
awk -F"\t" '{print $1"\t"$2<0?$2*-1:$2"\t"$3"\t"$4"\t"$5"\t"$6}' CTCF_first_coordinates > CTCF_first_coordinates_new
我的問題是,當我運行它,則不能打印我的第一列和值不會轉換成非負。但是,如果我不打印我的第一列代碼的作品。
任何人都可以建議我如何改進我的代碼來獲得正確的輸出?
下面是輸入牀文件,該文件是製表符分隔和第二列包含負值與正值
chr18 576980 586980 CETN1 CLUL1 M1
chr18 -8280 1720 NA USP14 M1
和i的輸出所需要的是下面我想要負值爲正和休息一切一起保持相同
chr18 576980 586980 CETN1 CLUL1 M1
chr18 8280 1720 NA USP14 M1
除了上述問題我有一些更多問題,即如上所示的第一座標輸出文件是大於第二座標。是否有任何方法來交換文件中兩列的選定值,即第2列和第3列。我在整個文件中有192個這樣的實例。所以,我的輸出應該是這樣的
CHR 18 576980 586980 CETN1 CLUL1 M1 CHR 18 1720 8280 NA USP14 M1
請與所需的輸出 – fedorqui
下面的例子一起顯示一些輸入文件是輸入文件 chr17 78614606 78624606 B3GNTL1 METRNL M1 chr17 78364327 78374327 FN3K ZNF750 M1 chr17 78618175 78628175 B3GNTL1 METRNL M1 CHR 18 576980 586980 CETN1 CLUL1 M1 chr18 -8280 1720 NA USP14 M1 –
請用這些信息編輯您的問題。在評論中跟蹤文件和代碼是很困難的。 – fedorqui