2015-11-08 243 views
1

我試圖將兩行csv文件組合成一行。將兩個csv行組合成一行

CSV文件:

"Operations=5009.0,AverageLatency(us)=714.4248352964663,MinLatency(us)=300.0,MaxLatency(us)=173567.0,95thPercentileLatency(us)=1216.0,99thPercentileLatency(us)=2645.0,Return=5009" 
"Operations=4991.0,AverageLatency(us)=831.4189541174113,MinLatency(us)=370.0,MaxLatency(us)=25999.0,95thPercentileLatency(us)=1495.0,99thPercentileLatency(us)=2857.0,Return=4991" 

預期輸出:

"Operations=5009.0,AverageLatency(us)=714.4248352964663,MinLatency(us)=300.0,MaxLatency(us)=173567.0,95thPercentileLatency(us)=1216.0,99thPercentileLatency(us)=2645.0,Return=5009","Operations=4991.0,AverageLatency(us)=831.4189541174113,MinLatency(us)=370.0,MaxLatency(us)=25999.0,95thPercentileLatency(us)=1495.0,99thPercentileLatency(us)=2857.0,Return=4991" 

我嘗試這樣做:

awk 'NR%2{printf $0" ";next;}1' file.csv 

但它不打印整個第一行。

"Operations=5009.0,AverageLatency(us)=714.4248352964663,MinLatency(us)=300.0,MaxLatency(us)=173567.0,95thPercentileLatency(us)=1216.0,99thPercenti "Operations=4991.0,AverageLatency(us)=831.4189541174113,MinLatency(us)=370.0,MaxLatency(us)=25999.0,95thPercentileLatency(us)=1495.0,99thPercentileLatency(us)=2857.0,Return=4991" 

任何想法?

感謝

+0

你使用什麼編程語言? – Whitecat

+0

@Whitecat我正在使用python。 – arazx

回答

1

對於您所描述的例子,下面的代碼應該做的工作:與當前一起

awk 'BEGIN{OFS=","}{if(NR%2==1){val=$0;}else{print val,$0}}' inputFile 

商店的奇數行中的變量的內容和打印此變量的內容排成行。

輸出:

"Operations=5009.0,AverageLatency(us)=714.4248352964663,MinLatency(us)=300.0,MaxLatency(us)=173567.0,95thPercentileLatency(us)=1216.0,99thPercentileLatency(us)=2645.0,Return=5009","Operations=4991.0,AverageLatency(us)=831.4189541174113,MinLatency(us)=370.0,MaxLatency(us)=25999.0,95thPercentileLatency(us)=1495.0,99thPercentileLatency(us)=2857.0,Return=4991" 

如果只有兩個輸入文件行,有解決問題(這是我第一次想出了)一個更復雜的方式:

awk 'BEGIN{RS=""; FS="\n"; OFS=",";}{print $1,$2;}' inputFile 

此代碼將換行符(「\ n」)解釋爲字段分隔符。也就是說,inputFile中的兩行顯示爲同一數據集的兩列。 (我們需要RS=""覆蓋其默認值。)
在輸出中,此換行必須用逗號(OFS=",")替換。

+0

謝謝!但仍然是第一行不完整。 – arazx

+0

@Araz:當我在這裏運行命令時,我會得到您的預期輸出。你錯過了什麼?順便說一句,您的命令也會產生預期的輸出(除了缺少「,」作爲字段分隔符)。可能是你的顯示有問題你是否嘗試將輸出寫入文件?我已將我的輸出添加到答案... –

+0

我的輸入文件中存在問題。剛剛解決。謝謝。 – arazx