我在下面顯示爲樣本拖文件:如何定值添加到逗號分隔的列表中AWK
col1 col2 col3 col4 col5 col6
247828 313574 55,126,184 25 4734,163,133,81,130 0,6637,8368,9333,14005
,我需要在COL1的值與每個元素COL6使輸出看起來象:
col1 col2 col3 col4 col5 col6
247828 313574 55,126,184 25 4734,163,133,81,130 247828,254465,256196,257161,261833
我嘗試使用
awk -F "\t" 'BEGIN{OFS="\t"}{array[arraylen++]=$6;for (i =0; i < arraylen; i++) print array[i]; }1'
我猜IM某處丟失,它打印的6個元素我n col6。有人可以幫助解決問題。
我確定你知道如果字段之間不是空格,而是另外考慮性能 - awk會在每次給'$ 6賦值時重新編譯當前記錄,我們會爲每個記錄做6次,每次記錄的價值爲6美元,就像當前的樣本輸入一樣。如果文件很大,那麼這可能會有明顯的影響,因爲分配給一個變量,然後在最後執行'$ 6 = var',這樣記錄只會重新編譯一次。 –
我認爲輸入中的字段被製表符分隔,因爲OP會將'FS'設置爲問題中的製表符。關於表現的公平點,我編輯了我的答案。 –
是的,你可能是對的,儘管通過閱讀一個腳本並不這樣做,試圖猜測一個腳本應該做什麼,總是有點冒險:-)。特別是 - 發佈的輸入文件沒有每行上的列的起始點彼此左對齊,只是看看它們之間的分離量,那麼「col5」和「col6」在第一行,所以它看起來不像一個製表符分隔的文件給我,但idk。 –