如何从 csv 文件中的时间戳列中提取特定年份

How to extract a specific year from a column of timestamps in a csv file

我有一个包含许多列的大型 CSV 文件,以及多个具有时间戳的列。我想仅根据这些列中的 1 列筛选特定年份的数据。

我的一些输入 CSV 的示例:(没有 headers)

17263847 11/20/2018 3:00:13 PM 11/23/2018 6:45:00 AM Approved
19483742 12/22/2019 4:00:12 PM 1/10/2020 4:50:11 AM Approved
38274938 10/10/2018 2:02:19 PM 02/07/2019 1:04:15 PM Approved

我想提取第二列中包含 2019 的所有行;所以对于这里的例子,我想提取第二行而不是第三行。然后,我希望将所有这些行放入一个新的 CSV 文件中。

有没有一种简单的方法可以在命令行中使用 grep 来做到这一点?我用过这个,但它不起作用:

awk -F, '=="2019"' file1.csv > file2.csv

如有任何帮助,我们将不胜感激!

  • 首先,在awk中第二列不是</code>,而是<code>(记住[=13=]指的是整个line/register .

  • 第二:使用正则表达式匹配 ~(我找到的第一个 tutorial),而不是 == 文字比较。

您需要的命令是:

awk -F, -e ' ~ /2019/' file1.csv > file2.csv