- 论坛徽章:
- 2
|
回复 21# aaaa_123
之前代码上有bug, awk 代码中文件输出和输入的文件名重了,导致tmp文件缩水, 多谢提醒
- seq 10000000 > b.txt
- seq 10000000 > file.test
- split -b10000000 -d b.txt s
- >res;
- rm -f tmp;
- for file in s[0-9]*;
- do
- if [ -f 'tmp' ];
- then
- file_in="tmp" ;
- else
- file_in="file.test";
- fi;
- awk 'NR==FNR{a[$0]=FNR;b[FNR]=$0;next}{if($0 in a){c[$0]=a[$0]}else{print >"tmp1"}}END{l=asort(c,d);print l;for(i=1;i<=l;i++){print b[d[i]] >>"res"}}' $file $file_in;
- cat tmp1 > tmp;
- done
- rm -f tmp*
- wc -l file.test b.txt res
- 10000000 file.test
- 10000000 b.txt
- 10000000 res
- 30000000 总用量
- diff b.txt res
- diff file.txt res
复制代码
|
|