删除 CSV 文件中的所有行,而在另一个 CSV 文件中没有对应/匹配的时间戳

哲学家

我有 2 个 CSV 文件,如下所示:

file1.csv

col1,col2,col3,col4,date,time,col7
1,2,3,4,2019-07-20,12:40:00,0
1,2,3,4,2019-07-20,12:43:00,0
1,2,3,4,2019-07-20,12:44:00,0
1,2,3,4,2019-07-20,12:45:00,0
1,2,3,4,2019-07-20,12:46:00,0
1,2,3,4,2019-07-20,12:47:00,0

file2.csv

date,time,col3
2019-07-20,12:40:00,1
2019-07-20,12:41:00,2
2019-07-20,12:42:00,3
2019-07-20,12:43:00,4
2019-07-20,12:44:00,5
2019-07-20,12:45:00,6
2019-07-20,12:46:00,7
2019-07-20,12:47:00,8

正如在 中所见file2.csv,对于分别带有时间戳2019-07-20,12:41:00和 的第2 行和第 32019-07-20,12:42:00行,在 中不存在具有相同时间戳的对应行file1.csv我想在file2.csv删除这些特定行的情况下输出,以便只file1.csv保留具有匹配时间戳的行

是否可以在命令行中使用简单的命令来执行此操作?我有一种预感,它可能涉及正则表达式匹配,但我不确定执行此操作的最有效方法。

谢谢!

大学教师

这是一种方法:

$ awk -F, 'NR==FNR {a[$5 FS $6]; next} ($1 FS $2) in a' file1 file2  
date,time,col3
2019-07-20,12:40:00,1
2019-07-20,12:43:00,4
2019-07-20,12:44:00,5
2019-07-20,12:45:00,6
2019-07-20,12:46:00,7
2019-07-20,12:47:00,8

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从 bash 中删除与另一个文件中的行匹配的 CSV 文件中的行?

如何根据另一个文件中的列表值从csv文件中删除行?

如何从csv中删除与另一个csv中的行匹配的行

通过删除PERL中的某些列,从另一个CSV文件创建一个CSV文件

如何比较一个CSV中的一行与另一个CSV文件中的所有行?

如何根据另一个 .csv 文件删除 .csv 文件的元素?

从另一个 1 个 csv 中删除行

我有熊猫数组,它最初是一个 csv 文件。我想从列中的所有行中删除一个特定的词:text

有条件地在Scala / Spark的CSV文件中映射行,以生成另一个CSV文件

从csv中删除多余的时间戳

使用另一个 csv 从 csv 中删除类似的字符串

检查另一个csv文件中每一行的csv文件值

从另一个文件中删除文件中与文本不匹配的所有行

如何根据另一个csv文件中的关键字提取csv文件中的句子并将其从主文件中删除

如果在 bash 中找到字符串(来自另一个文本文件),则删除 csv 文件中的行

如何从所有csv文件中添加列n并存储在另一个csv文件中(标头是该列来自的文件名)?

从 CSV 中删除 [' 和 ']

删除CSV文件中的空行

如何从csv文件中删除第一列中的字符串与另一个csv的第一列中的字符串相同的行?

如何从csv文件中删除所有点?

删除UNIX .csv文件中的所有特殊字符类型

使用 python 将现有 csv 文件中的列插入另一个 csv 文件

使用另一个 csv 文件中的更新信息更新现有的 csv 文件

Python csv 文件 - 打开一个 csv 文件并从 2 列中获取所有信息,获取唯一值,然后删除一些回复(没有 Pandas)

如果在另一个 CSV 文件中找到行值,则从 CSV 文件中过滤行

删除CSV中的所有重复条目

导入CSV文件,删除一行,导出CSV文件

有选择地删除 csv 文件中的行 (Python)

使用Python删除CSV文件中的行