我在想办法去掉第一个 n
来自的行 csv
文件夹。
基本上,我得到了几百个csv文件的转储,任务是创建一个可查询的mysql数据库。文件中有一个非csv格式的图例占据了第一个位置 ~10
行,并在尝试导入mysql时抛出错误。图例的长度是可变的,因为并非所有文件都具有相同数量的参数。
我正在寻找一种方法来删除这个传说,我能找到的唯一模式是第一个 csv
元素总是单词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;
这将删除所有文本前的第一个示例的一年,但我不熟悉 sed
不知道怎么让它跳到第二个示例。我在递归函数中尝试了上述方法,但没有成功。
有什么建议吗?
2条答案
按热度按时间azpvetkf1#
这可能对你有用(gnu)
sed
):这会聚集线条,直到第二次出现
year
然后删除到但不包括当前行的所有行。zrfyljdw2#
awk
为救援干杯!