我有一个csv文件,我从API获取并想加载到MySQL表中,我不确定要搜索什么来处理文件的异常性质。
CSV看起来像:
meta data
Class 1
1,2,3
5,9,7
Class 2
2,5,4
6,5,4
Class 3
8,4,3
7,8,8
我希望输出能够更轻松地加载:
Class 1,1,2,3
Class 1,5,9,7
Class 2,2,5,4
Class 2,6,5,4
Class 3,8,4,3
Class 3,7,8,8
我习惯于API返回json并在PHP中循环来加载数据。这个API只有一个csv选项 - 类总是以相同的顺序出现,所以我想可能是一个直到循环才能追加第一个值并在它运行到包含'Class'的下一行之后重复它冲洗并重复。不确定是否有更容易的方法。
答案 0 :(得分:0)
使用sed:
$ sed '/^Class/{h;d};/^Class/!{G;s/\(.*\)\n\(.*\)/\2,\1/g}' file.csv
Class 1,1,2,3
Class 1,5,9,7
Class 2,2,5,4
Class 2,6,5,4
Class 3,8,4,3
Class 3,7,8,8
使用-i
选项编辑文件 :
sed -i '/^Class/{h;d};/^Class/!{G;s/\(.*\)\n\(.*\)/\2,\1/g}' file.csv