我有一個表格文件等比較在不同的列兩個陣列中用於使用UNIX
COL1 COL2每行一個文件和打印匹配元件6 29 61 63 67 70 133 134 150 159 166 208 220 260 261 262 303 312 316 327 330 349 378 387 396 408 415 454 465 V 260 135 49 159
等等高達千行。
分爲五列。我已經通過拆分(空格分隔符)將數組中的第三列和第五列進行了轉換,以便比較它們並打印匹配數字。不過,我已經嘗試了不同的方法,但沒有結果,下面的代碼
awk 'BEGIN {FS=OFS="\t"} { allpos=split($3,arr1," "); posSNP=split($5,arr2," "); { for (j in arr2) {for (i in arr1) { if (arr2[j] == arr1[i]) {printf "%s ", i arr1[i]}} printf "\n"}}}' "input" > "output";
和類似的代碼。
我的期望輸出和會是這樣的:
COL1 COL2五:159 - 260
我怎樣才能得到它在UNIX環境?在此先感謝
請格式化您的問題,以便輸入和輸出數據更容易理解。有多少列?另外,您需要描述如何計算輸出。 –
輸入是一個列表file.tsv,其中有五列。第三列和第五列是一組數字,並將比較它們之間的所有數字,並將每一行記錄到output.tsv文件中。總之,第一列和第二列保留在輸出中。 tsv文件以相同的方式,第三列將爲每行分隔的匹配數字。我希望我更正確地解釋input.tsv文件和所需的output.tsv文件。在此先感謝 –
編輯您的問題以呈現列表中的輸入文件,以便它看起來像它應該是什麼。 –