首页 > 解决方案 > 我正在尝试通过 awk 命令根据日期字段格式“YYYYMMDD”过滤记录。源文件和目标文件以逗号分隔,并用 Header 分隔

问题描述

awk 'BEGIN {FS = ","};(NR>=2){($2 > "20210331");}' test1.csv > test.csv

文件 test1.csv:

Col1,Col2,Col3
A,20210101,JohnA
B,20210101,JohnB
G,20210501,JohnG
C,20210108,JohnC
D,20210202,JohnD
E,20210331,JohnE
F,20210401,JohnF
H,20210715,JohnH

预期输出:

Col1,Col2,Col3
G,20210501,JohnG
F,20210401,JohnF
H,20210715,JohnH

标签: dateawkfilter

解决方案


您可以简单地将显示样本中的日期视为整数并进行比较。为了打印标题,您需要一个单独的条件。

awk 'BEGIN{FS=OFS=","} FNR==1{print;next} 20210331<$2' Input_file

推荐阅读