我有一个文件,有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/