我有由空間像這樣波紋管分隔的4個列的文件:如何在awk的另一個字段中查找模式並進行操作?
1_86500000 50 1_87500000 19
1_87500000 13 1_89500000 42
1_89500000 25 1_90500000 10
1_90500000 3 1_91500000 11
1_91500000 23 1_92500000 29
1_92500000 34 1_93500000 4
1_93500000 39 1_94500000 49
1_94500000 35 1_95500000 26
2_35500000 1 2_31500000 81
2_31500000 12 2_4150000 50
,第一和第三列不同相,所以我不能將一個由另一個的值。 由於只有兩個或一個可能的列$ 1或$ 3,解決方案將查找該模式並將其值分配到另一列中,或者將其設置爲0,如果沒有像這樣的預期結果顯示:
P.S.這個預期結果中的第二個領域僅僅是爲了說明這個部門。
1_86500000 0/50 0
1_87500000 19/13 1.46154
1_89500000 42/25 1.68
1_90500000 10/3 3.333
1_91500000 11/23 0.47826
1_92500000 29/34 0.85294
1_93500000 4/39 0.10256
1_94500000 49/35 1.4
2_35500000 0/1 0
2_31500000 81/12 6.75
2_4150000 50/0 50
我除此之外沒有自己存檔任何東西。所以我現在沒有任何起點。
我試着分開與_合併的字段,以查看是否可以通過減去座標來匹配。如果我得到0意味着列是在階段和正確的。但我無法走得更遠。
awk '{if(($5-$2)==0) print $1,$2,$3,$4,$5,$6}' file
我試圖同時匹配列,但我只得到了階段性成果:
awk '{if(($1==$3)) print $1,$4/$2}' file
你能幫助我嗎?
你到目前爲止解決問題的方法是什麼?我相信你可以展示一些awk代碼 – fedorqui
看我編輯的代碼 –