现有千万行数据A文件,格式如下:
数据 IP
数据 IP
数据 IP
……
另有IP列表一份B文件,格式如下:
IP
IP
IP
……
现要求从A文件找出包含B文件中IP的行,输出到C文件。
我尝试过一些方法,发现自己太傻……
最后采取了这种方法,正在跑但总觉得效率太低……
想到要循环几百万次,就蛋疼不已,一秒钟一次循环得跑一个月……
#!/bin/bash
for i in `cat Bfile`
do
awk '$2=="$i"' Afile
done >Cfile
不知道怎么控制线程数量,如果不加以控制地运行的话就是这样,会因为进程过多占用系统资源一会就死掉了。
#!/bin/bash
for i in `cat Bfile`
do
{
awk '$2=="$i"' Afile
}&
done >Cfile
wait