您的位置:首页 > 运维架构 > Shell

shell大文件读取并处理的问题

2013-04-27 11:33 211 查看
有个文件在/tmp/t.unl下

里面有800万行的数据,每行有8位数字,比如:

00000001

00000002

00000003

00000004

....

这些数字是对应在

/work/0000/00000001

/work/0000/00000002

/work/0000/00000003

/work/0000/00000004

下的文件

求一脚本,使得删除,存在/tmp/t.unl中,并在/work/0000/目录下该文件名的文件。“0000”是“00000004”的前4位

原方案使用

cat /tmp/t.unl |while read tmpf

do

rm the file

done

结果效率非常低,要跑几个小时,怎么才能提高效率呢?

try:

sed 's,^,rm -rf /work/0000/,' /tmp/t.unl >/tmp/t_unl_rm.sh

. /tmp/t_unl_rm.sh

复制代码

awk '{system("rm -f /work/"substr($0,1,4)"/"$0)}' /tmp/t.unl

sed 's#....#/work/&/&#' /tmp/t.unl | xargs rm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐