gpt4 book ai didi

mysql - 在 csv 文件中删除最多第 N 个模式匹配实例的文本

转载 作者:行者123 更新时间:2023-11-29 01:35:14 25 4
gpt4 key购买 nike

我正在寻找一种从 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 并且不知道如何让它跳到第二个实例。我在递归函数中尝试了上面的方法,但没有成功。

有什么建议吗?

最佳答案

awk 助您一臂之力!

$ awk '/year/{c++} c>1' file

(csv format) year, month, day, etc...

关于mysql - 在 csv 文件中删除最多第 N 个模式匹配实例的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51452000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com