我正在尋找一種方法來合併基於前2行的一些文件。但我不想排除uniq值,我希望他們留下來,以便我可以創建一個最終的獨特文件。如何在保持不匹配的值時合併兩個文件?
我嘗試使用這個命令:
join <(sort 1) <(sort 2) | tac | awk '{print $1,$3,$4,$5,$2}' | column -t
但它合併,只輸出匹配的東西。
例如,文件1的這樣的數據:
mm1 36307733 36324029 1.45947622984395
mm1 36530188 36547201 -1.05469327277336
mm1 37874801 37890411 1.1818111527155
mm1 39551296 39577405 1.03024743095568
mm1 40465552 40500854 1.69797988062545
文件2:
mm1 17601901 17630939 -1.02477154457324
mm1 21511933 21513056 -1.01776484266642
mm1 23995939 24005656 -1.29725218483742
mm1 24612407 24612700 -1.5481572503361
mm1 24612775 24613119 -1.69044737891815
文件3:
mm1 21218575 21230167 -1.0792454238353
mm1 23995939 24005656 -1.38350179201041
mm1 24612407 24612700 -1.99368917819954
mm1 24612775 24613119 -1.27503764730879
mm1 36140027 36244720 1.15136681818451
在未包含在輸出文件的行其他文件應標爲0
output.file
File 1 File 2 File 3
mm1 36307733 36324029 1.45947622984395 0 0
mm1 6530188 36547201 -1.05469327277336 0 0
mm1 37874801 37890411 1.1818111527155 0 0
mm1 39551296 39577405 1.03024743095568 0 0
mm1 40465552 40500854 1.69797988062545 0 0
mm1 17601901 17630939 0 -1.02477154457324 0
mm1 21511933 21513056 0 -1.01776484266642 0
mm1 23995939 24005656 -1.29725218483742 -1.38350179201041
mm1 24612407 24612700 -1.5481572503361 -1.99368917819954
mm1 24612775 24613119 0 0 -1.27503764730879
mm1 36140027 36244720 0 0 1.15136681818451
請顯示你已經試過,謝謝。 – jkdba
我編輯了我的帖子。 –
所以你發佈了一個問題,並接受了你得到的第一個答案,即使這個答案使用了一大堆GNU特有的工具和管道,特別是「這實際上是awk的一個工作。」。好的祝你好運! –