【发布时间】:2018-12-29 07:46:48
【问题描述】:
我正在寻找一种从csv 文件中删除第一行n 的方法。
基本上,我收到了数百个 csv 文件的转储文件,任务是创建可查询的 MySQL 数据库。这些文件有一个非 csv 格式的图例,占据了第一个 ~10 行,并在尝试导入 MySQL 时引发错误。图例的长度是可变的,因为并非所有文件都具有相同数量的参数。
我正在寻找一种删除图例的方法,我能找到的唯一模式是第一个 csv 元素始终是单词 year 的第二个实例。
文件基本上看起来像这样,我希望每个文件的开头是小写 year 的第二个实例。
Legend:
non-csv text...
year: Year
... etc
(csv format) year, month, day, etc...
我查看了 sed 命令来循环遍历每个文件,但找不到完全符合我要求的命令。即:
find . -name "*.csv" |
while read filename;
do
sed -n '/year/,$p' $filename > newFile.csv;
done;
这会删除 year 第一个实例之前的所有文本,但我不熟悉 sed 并且不知道如何让它跳到第二个实例。我在递归函数中尝试了上述方法,但没有成功。
有什么建议吗?
【问题讨论】: