You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从CSV文件指定时间戳列中提取特定年份的行并导出新文件

问题原因

你之前的命令未生效有两个核心问题:

  • 字段匹配错误:$1 指代CSV的第一列,你需要筛选的第二列应使用 $2 指代
  • 规则逻辑错误:时间戳字段不会整体等于2019,需要提取字段内的年份部分做匹配

可行方案

方案1:awk实现(更稳定,优先推荐)

awk原生支持按列筛选,不会因为其他列出现2019导致误匹配,处理大型CSV效率更高:

场景A:第二列是字符串格式时间戳(如2019-05-20、2019/11/02)

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

如果要更严谨避免2019出现在月日位置,可以限制匹配字段开头:

awk -F ',' '$2 ~ /^[^0-9]*2019/' file1.csv > file2.csv

场景B:第二列是10位Unix时间戳

awk -F ',' 'strftime("%Y", $2) == "2019"' file1.csv > file2.csv

方案2:grep实现

如果要使用grep工具,可通过正则定位第二列的年份,仅适合CSV没有带逗号的引号包裹字段的场景:

grep -E '^[^,]*,[^,]*2019' file1.csv > file2.csv

内容的提问来源于stack exchange,提问作者samster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:24:03