我有一个从 API 获取的 csv 文件并想加载到 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 选项——类总是以相同的顺序出现,所以我想也许是一个 do until 循环来附加第一个值,然后在它运行到包含“Class”的下一行之后重复它冲洗并重复。不确定是否有更简单的方法。
最佳答案
使用 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
关于php - 在 csv 中查找字符串并添加到每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38486804/