我有一个包含数百行数据的csv文件。我希望能够在顶部插入一行删除具有数据名称的列,然后将数据名称放在数据值列的顶部。然后将其转换为文本到由空格分隔的列。我希望在shell中完成这个。看下面的exp之前和之后。
之前:一行数据
work_needs_to_get_done_001 time 25000000 runs 28908331 other_data1 89708097
work_needs_to_get_done_002 time 25000000 runs 27285458 other_data1 89708097
work_needs_to_get_done_003 time 25000000 runs 27284897 other_data1 89708097
work_needs_to_get_done_004 time 25000000 runs 27280741 other_data1 89708097
之后:按空格分隔的各列
Workname Time Runs Other_data1 Other_data2
work_needs_to_get_done_001 25000000 28908331 89708097 89708097
work_needs_to_get_done_002 25000000 27285458 89708097 89708097
work_needs_to_get_done_003 25000000 27284897 89708097 89708097
work_needs_to_get_done_004 25000000 27280741 89708097 89708097
答案 0 :(得分:1)
当需要处理列时,请考虑使用awk:
awk '{print $1, $3, $5, $6}' file
答案 1 :(得分:0)
echo "Workname Time Runs Other_data1 Other_data2" > 1.txt
awk '{ print $1, $3,$5,$7 }' filename >> 1.txt
格式化:
awk '{ printf "%-40s %-20s\n %-20 %-20 %-20", $1, $2,$3,$4}' 1.txt