有N个1-2 G大的文件,其中第六列是点分表示的IPV4地址
需要给它转换成整数表示。
我写了如下的awk
#!/bin/awk -f
{
len = split($6,a,".")
ip = 0
if (len == 4)
ip = lshift(a[1],24) + lshift(a[2],16) + lshift(a[3],8) + a[4]
printf $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"ip"\n" > o
}
机器CPU是6核的,就起了6个进程去转,每个awk进程基本都是CPU 100了
但是转换一个文件需要15分钟左右,感觉还是太慢
求教有什么方法可以让AWK跑的更快些吗?
需要给它转换成整数表示。
我写了如下的awk
#!/bin/awk -f
{
len = split($6,a,".")
ip = 0
if (len == 4)
ip = lshift(a[1],24) + lshift(a[2],16) + lshift(a[3],8) + a[4]
printf $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"ip"\n" > o
}
机器CPU是6核的,就起了6个进程去转,每个awk进程基本都是CPU 100了
但是转换一个文件需要15分钟左右,感觉还是太慢
求教有什么方法可以让AWK跑的更快些吗?