2015-03-02 29 views
0

在所有文件的第11列中,我想刪除最後一位數字 - 一個0.我不知道如何快速執行此操作?在幾個文件中刪除列中所有行的最後一位數字

輸入文件示例

chr1 13281 C G 20 4 16.670 S 28 3 9.680 S Germline 0.006377004201320391 0.8803370017576622 19 9 2 1 
chr1 13302 C T 12 10 45.450 Y 20 11 35.480 Y Germline 3.992679813441744E-8 0.8451888548995793 13 7 9 2 
chr1 13402 G C 114 0 00 G 153 2 1.290 S Somatic 1.0 0.3311046995506439 139 14 1 1 
chr1 136048 C T 19 12 38.710 Y 32 7 17.950 Y Germline 4.6433264291396187E-7 0.98655920157275 15 17 2 5 
chr1 871269 A C 12 2 14.290 M 26 2 7.140 M Germline 0.058009817045962773 0.9000000000000099 4 22 0 2 
chr1 881627 G A 0 31 1000 A 0 43 1000 A Germline 4.280406726905674E-44 1.0 21 22 

輸出

chr1 13281 C G 20 4 16.670 S 28 3 9.68 S Germline 0.006377004201320391 0.8803370017576622 19 9 2 1 
chr1 13302 C T 12 10 45.450 Y 20 11 35.48 Y Germline 3.992679813441744E-8 0.8451888548995793 13 7 9 2 
chr1 13402 G C 114 0 00 G 153 2 1.29 S Somatic 1.0 0.3311046995506439 139 14 1 1 
chr1 136048 C T 19 12 38.710 Y 32 7 17.95 Y Germline 4.6433264291396187E-7 0.98655920157275 15 17 2 5 
chr1 871269 A C 12 2 14.290 M 26 2 7.14 M Germline 0.058009817045962773 0.9000000000000099 4 22 0 2 
chr1 881627 G A 0 31 1000 A 0 43 100 A Germline 4.280406726905674E-44 1.0 21 22 
+2

注意最後一行中的'1000'將變爲'100'。這也很好嗎? – fedorqui 2015-03-02 14:22:04

+0

他的示例輸出顯示了100個字段。 – Phylogenesis 2015-03-02 14:22:36

+2

是的,我知道,但以防萬一,因爲它不是相同的轉換'7.140'到'7.14'比轉換成一百。 – fedorqui 2015-03-02 14:23:59

回答

3

你可以用awk,

awk '{sub(/[0-9]$/, "", $11)}1' file 
+0

這是個好主意,所以++。我懷疑OP會希望將'OFS'設置爲'\ t';該數據看起來是製表符分隔的。 – Wintermute 2015-03-02 14:47:39

0
sed 's/\(\([^[:space:]]\{1,\}[[:space:]]\{1,\}\)\{10\}[^[:space:]]*\)0/\1/' YourFile 
  • -i選項f,或者內聯編輯(--POSIX由於GNU sed在這種情況下)
+2

你可以包含'-r'選項來擺脫所有的轉義,我相信它是'--posix'(小寫)。 – 2015-03-02 18:48:08

+0

posix和{{(不符合,但你是對的,它是GNU版本的一個好選擇 – NeronLeVelu 2015-03-03 08:30:07

相關問題