我有一个带有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查询
awk -F'^''$ 5~ [0-9]:[0-9]:[0-9]'打印
但这不起作用
日期验证。如何验证2位数的日期,3个月的Char和& 2位数年
第3个字段中的十进制数验证
如何在单个awk脚本
答案 0 :(得分:2)
您可以将它们组合成一个这样的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