将简单的 ascii table 转换为 CSV
Convert simple ascii table to CSV
我有如下所示的 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
一个简单的方法是将您的输出导入到 Microsoft Excel。首先,将上述文件另存为"data.txt"。打开 Microsoft Excel,选择文件 -> 打开,然后选择 select "data.txt" 作为文件。您将看到一个如下所示的对话框:
立即选择完成。我用上面的数据对此进行了测试,使用 "Fixed width" 分隔符效果很好。
您现在应该会看到一个 Excel 工作簿,其中的数据整齐地排列在列中。最后一步是以 CSV 格式保存此文件。选择 "Save As" 或按 ALT + F + A,然后从扩展名列表中选择 CSV 格式,然后另存为 "data.csv"。您可以通过在编辑器中打开 "data.csv" 并检查来验证一切是否正常。
请注意,您可能需要在 Excel 中对您的列 headers 进行一些整理,但除此之外,您的转换应该是 breeze 使用 Excel!
我没有使用过 gprof 但假设它输出类似于上面示例的内容,您可以将输出通过管道传输到 awk
:
gprof | awk -v OFS=',' '{print ,,,,,,}'
如果您在传递 gprof 的输出时遇到困难,您可以将输出(如示例)保存到文件中,例如 file.txt
并执行:
cat file.txt | awk -v OFS=',' '{print ,,,,,,}'
我有如下所示的 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
一个简单的方法是将您的输出导入到 Microsoft Excel。首先,将上述文件另存为"data.txt"。打开 Microsoft Excel,选择文件 -> 打开,然后选择 select "data.txt" 作为文件。您将看到一个如下所示的对话框:
立即选择完成。我用上面的数据对此进行了测试,使用 "Fixed width" 分隔符效果很好。
您现在应该会看到一个 Excel 工作簿,其中的数据整齐地排列在列中。最后一步是以 CSV 格式保存此文件。选择 "Save As" 或按 ALT + F + A,然后从扩展名列表中选择 CSV 格式,然后另存为 "data.csv"。您可以通过在编辑器中打开 "data.csv" 并检查来验证一切是否正常。
请注意,您可能需要在 Excel 中对您的列 headers 进行一些整理,但除此之外,您的转换应该是 breeze 使用 Excel!
我没有使用过 gprof 但假设它输出类似于上面示例的内容,您可以将输出通过管道传输到 awk
:
gprof | awk -v OFS=',' '{print ,,,,,,}'
如果您在传递 gprof 的输出时遇到困难,您可以将输出(如示例)保存到文件中,例如 file.txt
并执行:
cat file.txt | awk -v OFS=',' '{print ,,,,,,}'