2015-11-08 244 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