我有一个包含以下记录的文件:
11924 nt4dalmtg.er.usgs.gov 144.47.95.64 Sat, June/23/2001 7:21:57
我试图通过使用awk来计算不包含任何数字的子字段数。
这就是我的尝试:
'BEGIN{FS=".+|/+| ";for (i=1;i<=NF;i++)if($i ~/[^0-9]/) j++}
END{ print j}' file.txt
它什么都不返回。我尝试了BEGIN END块的一些变化,但我不确定它是否是我的代码块或者我是否设置了字段分隔符?
答案 0 :(得分:1)
你可以尝试,
awk 'BEGIN{FS="\\.+|\\/+|[ ]+";}
{for (i=1;i<=NF;i++) if($i ~ /^[^0-9]+$/) j++}
END{print j}' file
你得到了
5
子字段是“呃”,“usgs”,“gov”,“Sat”和“June”
答案 1 :(得分:0)
只是尝试将for循环放在处理块而不是BEGIN块中......如下所示
# notice extra closed and open braces before for
$awk 'BEGIN{FS=".+|/+| ";} {for (i=1;i<=NF;i++)if($i ~/[^0-9]/) j++} END{print j}' file.txt