任何人都可以幫助我解決以下問題:
我有一個製表符分隔的文件,在每一行中沒有相同數量的列。我需要將第一列中的值隨後除以所有其他列中的值。因此,我希望將最終號碼提供給一個新文件。如何將所有其他列的列隨後分割或除以所有其他列的倍數?
example_file.txt
0.0002 0.2 0.2 0.6 0.03 0.3 0.7 0.004 0.1 0.2 0.005 0.3 0.005
我填充所有空行與1中,通過0,以避免與除法問題:
awk '{for(i=NF+1;i<=6;i++)$i="1"}1' <example_file.txt> example_file_filled.txt
example_file_filled.txt
0.002 0.2 0.2 0.6 1 1 0.03 0.3 0.7 1 1 1 0.004 0.1 0.2 0.005 0.3 0.005
預期輸出:
output.txt的
0.083 0.14 26666.66
我知道我可以:
- 或者除以第二列的第一列,則取該值,然後除以第三列等
- 或者將第二列的所有列乘以最後一列,然後使用此值除以第一列
對於第一種可能性,我嘗試使用:
awk '{$1=$1/$2; $2=""; print $0 }' example_file_filled.txt
這除以第二個和打印作爲輸出的結果,接着爲尚未用於劃分這些數字中的第一行。我試圖循環完成,直到沒有第二行,但我沒有管理。
任何人都可以提出解決方案嗎?我的真實文件有> 100列。我主要使用bash/unix,但我也樂於從其他方法中學習。
在此先感謝!
非常感謝!它完美的作品。我沒有任何專欄中的0,所以沒關係。 –