首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用命令行按日期过滤大数据文件

使用命令行按日期过滤大数据文件
EN

Stack Overflow用户
提问于 2021-10-07 01:09:20
回答 2查看 362关注 0票数 1

我有一个csv文件,其中包含一组数据,其中一列是date。我正在尝试提取所有在特定年份有日期的行,并将其保存到一个新文件中。

文件的格式与第二列中的日期和时间类似:

0000000,10/04/2021 02:10:15,.

到目前为止我试过:

代码语言:javascript
运行
复制
grep -E ^2020 data.csv >> temp.csv

但它只是产生了一个空的临时名单。对我怎么做有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-07 03:29:28

一个潜在的解决方案是使用awk

代码语言:javascript
运行
复制
awk -F"," '$2 ~ /\/2020 /' data.csv > temp.csv

另一个潜在的选择是使用grep

代码语言:javascript
运行
复制
grep "\/2020 " data.csv > temp.csv

但是,grep解决方案可能在文件的其他地方而不是在第2列中检测到"/2020“。

票数 3
EN

Stack Overflow用户

发布于 2021-10-07 07:17:04

虽然awk解决方案在这里是最好的,例如。

代码语言:javascript
运行
复制
awk -F, 'index($2, "/2021 ")' file

grep也可以在这里使用:

代码语言:javascript
运行
复制
grep  '^[^,]*,[^,]*/2021 ' file

在线演示

备注:

  • awk -F, 'index($2, "/2021 ")'将行(记录)分割为带有逗号的字段(参见-F,),如果第二个字段($2)中有/2021 +空格,则打印该行。
  • ^[^,]*,[^,]*/2021命令中的grep模式与匹配
    • ^ -字符串的开始
    • [^,]* -零或多个非逗号字符
    • ,[^,]* -a ,和0或多个非逗号字符
    • /2021 -一个文字子字符串。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69474281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档