|
shell代码:
awk -v max_records=50 '
BEGIN { FS="|" }
{
i=0;
while (i < max_records)
{
if(($1 >= 10) && ($2 <= 20))
{
i++;
print NR,$1,$2;
}
}
}
END {}' \
test.txt
编程目的:text文件的域分割符为“|”,在其中查找第1域值大于10且第2域值小于20的行,只需要找到满足条件的前50行并将其打印出来即可,后面的都忽略
由于文件非常巨大,满足条件的行有几万行,考虑到脚本的执行效率问题,设置了一个变量max_records,只需要awk程序查找满足条件的前max_records行即退出,不需要查找后面的行了。
运行以上程序,死循环,只有Ctrl + C退出。请各位高手分析下症结所在。如果要实现上面的目的,请问该怎么写代码 |
|