CSV文件中的日期验证

n3ipq98p  于 2022-12-15  发布在  其他
关注(0)|答案(2)|浏览(161)

我需要验证CSV中的DOB字段,并从字段中删除无效数据。预期的DOB格式是YYYY-MM-DD只请参阅下面的源文件和预期的输出。我期待AWK命令来解决这个问题。

name,dob
pater,2022-12-10
john,1900-10-23
cader,apr 10 12056
tina,2020-maple road
mike,2019-01-35
carl,2010-03-18 new york
anne,hi how are you?

字符串
我需要清理第2列作为出生日期字段。注意:在某些行中,DOB字段中存在其他文本,对于此类情况,我只需要保留有效日期,删除其他文本(例如:第6行)
预期产出

name,dob
pater,2022-12-10
john,1900-10-23
cader,
tina,
mike,
carl,2010-03-18
anne,
aydmsdu9

aydmsdu91#

我可以使用以下命令完成此任务

awk 'BEGIN{FS=OFS=","}{$2=match($2,/[0-9]{4}-(0[1-9]|1[0-2])-(?:[0-9]|[12][0-9]|3[01])/)?substr($2,RSTART,RLENGTH):"";print}' input.csv > output.csv
sgtfey8w

sgtfey8w2#

像这样的东西可能有用

awk -F "," '{ if ($2 ~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}(.*)$/) print $1 "," $2; else print $1 "," }' input.csv > output.csv

相关问题