将简单的ascii表转换为CSV

时间:2015-03-05 07:36:55

标签: bash unix csv gprof

我有如下所示的gprof输出,我想将其转换为CSV格式。从cmd行做最简单的方法是什么? (我有很多这类文件,我需要自动化。)

 %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
 30.02      2.75     2.75   334408     0.00     0.00  primal_bea_mpp
 23.25      4.88     2.13        5     0.43     0.89  price_out_impl
 22.93      6.98     2.10  6336742     0.00     0.00  replace_weaker_arc
  8.84      7.79     0.81     1679     0.00     0.00  refresh_potential
  4.04      8.16     0.37   334402     0.00     0.00  sort_basket
  3.00      8.44     0.28   334402     0.00     0.00  update_tree
  2.07      8.62     0.19 233720751     0.00     0.00  bea_is_dual_infeasible
  2.07      8.81     0.19  8630892     0.00     0.00  insert_new_arc
  2.02      9.00     0.18   334402     0.00     0.00  primal_iminus
  0.55      9.05     0.05        6     0.01     0.01  flow_cost
  0.55      9.10     0.05        4     0.01     0.02  suspend_impl
  0.33      9.13     0.03        6     0.01     0.01  dual_feasible
  0.22      9.15     0.02        7     0.00     0.00  refresh_neighbour_lists
  0.11      9.16     0.01        6     0.00     0.77  primal_net_simplex
  0.00      9.16     0.00        6     0.00     0.00  primal_feasible
  0.00      9.16     0.00        2     0.00     0.00  resize_prob
  0.00      9.16     0.00        1     0.00     0.00  getfree
  0.00      9.16     0.00        1     0.00     9.16  global_opt
  0.00      9.16     0.00        1     0.00     0.00  primal_start_artificial
  0.00      9.16     0.00        1     0.00     0.00  read_min
  0.00      9.16     0.00        1     0.00     0.00  write_circulations

2 个答案:

答案 0 :(得分:2)

我没有使用gprof,但假设它输出的内容类似于上面的示例,您可以将输出传递给awk

gprof | awk -v OFS=',' '{print $1,$2,$3,$4,$5,$6,$7}'

如果管道gprof的输出有困难,您可以将输出(如示例)保存到文件中,例如file.txt并执行:

cat file.txt | awk -v OFS=',' '{print $1,$2,$3,$4,$5,$6,$7}'

答案 1 :(得分:1)

执行此操作的一种简单方法是将输出导入到Microsoft Excel中。首先,将上述文件另存为“data.txt”。打开Microsoft Excel,选择文件 - >打开,然后选择“data.txt”作为文件。您将看到一个如下所示的对话框:

enter image description here

立即选择完成。我用上面的数据对此进行了测试,使用“固定宽度”的分隔符效果很好。

您现在应该看到一个Excel工作簿,其中的数据整齐地列在列中。最后一步是以CSV格式保存此文件。选择“另存为”或按ALT + F + A,然后从扩展名列表中选择CSV格式,然后另存为“data.csv”。您可以通过在编辑器中打开“data.csv”并检查来验证一切是否有效。

请注意,您可能需要使用列标题在Excel中进行一些整理,但除了使用Excel进行转换之外,应该轻而易举!