我有一个文件,有7列带插入符号(^)分隔符
例子

ABCD123456^12345678^192.654^02Aug15^12:10:36

我写了一个awk命令来检查重复的
awk '!seen[$0]++' filename

第一个字段的长度应为10,第二个字段的长度应为8
awk -f '^' '{ if ((length($1) == 10) && (length($1) == 10)) print }'

问题是
如何进行时间验证([0-9]:[0-9]:[0-9])?什么鬼问题
awk-f'^''$5~[0-9]:[0-9]:[0-9]'打印
但这不管用
日期验证。如何验证2位数的日、3个字符的月和2位数的年
第三个字段中的十进制数验证
我怎么能把这一切合并成一个awk脚本

最佳答案

您可以将它们组合成一个awk命令,如下所示:

awk -F '^' 'length($1) == 10 && length($2) == 8 &&
     $3 ~ /^[0-9]+\.[0-9]+$/ && $5 ~ /^[0-9]{2}:[0-9]{2}:[0-9]{2}$/ && !seen[$0]++' file

关于linux - AWK脚本结合了多字段验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33553287/

10-16 20:39