2
我有文件,象這樣的行:用awk SUBSTR
1 17 A G R:560:500:60:10.71%:1.6329E-19 Pass:1.0:276:0:57:0:1E0 15 17 0 0 R:24:20:4:16.67%:5.461E-2 R:22:20:2:9.09%:2.4419E-1 R:27:24:3:11.11%:1.1792E-1 R:26:23:3:11.54%:1.1765E-1 A:16:16:0:0%:1E0 A:23:23:0:0%:1E0 A:11:10:1:9.09%:5E-1
1 36 C T Y:560:499:61:10.89%:7.7026E-20 Pass:1.0:275:0:58:0:1E0 15 17 0 0 Y:24:20:4:16.67%:5.461E-2 Y:22:20:2:9.09%:2.4419E-1 Y:27:24:3:11.11%:1.1792E-1 Y:26:23:3:11.54%:1.1765E-1 C:16:16:0:0%:1E0 C:23:23:0:0%:1E0 C:11:10:1:9.09%:5E-1
我以前已經使用班輪以下awk來從$ 11日起提取每個字段的第一個字符。
awk '{n=11; while (n<18) {{$n = substr($n, 0, 1)} n++} print $0}'
我正在尋找一種簡單的方法來修改它,所以我可以(領域的第四冒號後的值)提取只能從這些的Fileds百分比。輸出將如下所示:
1 17 A G R:560:500:60:10.71%:1.6329E-19 Pass:1.0:276:0:57:0:1E0 15 17 0 0 16.67% 9.09% 11.11% 11.54% 0% 0% 9.09%
1 36 C T Y:560:499:61:10.89%:7.7026E-20 Pass:1.0:275:0:58:0:1E0 15 17 0 0 16.67% 9.09% 11.11% 11.54% 0% 0% 9.09%
乾杯。
AWK「{N = 11; while(n <18){{$ n = substr($ n,0,1)} n ++} print $ 0}' – user1308144
我無法將它整合到awk中。 awk'{n = 11; while(n <18){{$ n = split($ n,arr,「:」)} n ++} print $ 0}'給出了每個數組中元素的個數。 – user1308144
@ user1308144:請參閱我編輯的答案。 split()將結果放在指定數組中,並返回部分的數量。 –