Linux shell脚本区别内容相同的文件
来源:互联网 发布:反电信网络诈骗中心 编辑:程序博客网 时间:2024/06/06 12:44
以前使用'网络蜘蛛'抓取了不少文件.但后来发现这些文件中有很多是内容完全相同的,如何只保留一份内容相同的文件而把其它相同的去除掉哪?我使用了linux shell脚本处理这个问题:
for file in * #遍历文件
do
if ! [ -f "$file" ] #如果文件存在的话,因为有的文件可能被剔除了.
then
echo $file" not exist"
else
for i in *
do
if [ "$file" != "$i" ] #如果文件名不同
then
if cmp -s $file $i
then
mv $i ../same/
fi
fi
done
mv $file ../unique/
fi
done
我一共处理4000多个文件,运行的挺慢的,用了1天零2夜才处理完,我汗,竟剔出了近2000,我再汗.
为了提高效率,后来考虑只对文件大小相同的文件才进行比较.脚本如下:
for file in * #遍历文件
do
if ! [ -f "$file" ] #如果文件存在的话,因为有的文件可能被剔除了.
then
echo $file" not exist"
else
leno=`ls -l $file | awk '{print $5}'` #使用ls和awk提出文件大小
for i in *
do
leni=`ls -l $i | awk '{print $5}'`
if [ "$file" != "$i" -a "$leno" = "$leni" ] #如果文件名不同,并且文件大小相同
then
if cmp -s $file $i
then
mv $i ../same/
fi
fi
done
mv $file ../unique/
fi
done
找了一小部分文件测试了一下,速度竟比第一个还慢,可能是频繁调用ls和awk的问题.
先到此,如果有更好的办法,再作补充.
- Linux shell脚本区别内容相同的文件.
- Linux shell脚本区别内容相同的文件
- 删除内容相同的文件并保留一份副本的shell脚本
- shell脚本分割文件成相同行数的文件
- shell脚本中修改文件的内容
- Shell 命令行求两个文件每行对比的相同内容
- 1.shell实用脚本:批量拷贝相同类型的文件
- linux shell脚本中读取文件内容的方法(含效率测试)
- linux shell脚本中的``和$()的区别
- LINUX 循环读取文件内容的脚本
- linux shell脚本文件的入参
- shell脚本:修改包含特定内容的多个文件
- 批量修改文件名称或者文件内容的shell脚本
- shell脚本,用awk实现替换文件里面的内容。
- shell脚本——判断文件的属性、内容、、
- 实现两个文件内容逐行进行对比的shell脚本
- linux shell脚本学习笔记一 脚本文件的构建
- Linux Shell删除两个文件相同部分
- Embedded Visual C++
- 数组下标越界错误的调试
- 这个月的最后一天~~
- 移动互联网漫谈(3)
- 遍历List列表进行选择性的删除操作
- Linux shell脚本区别内容相同的文件
- Mac OSX Commands:od
- 简单表达式
- ntdll!strcmp
- 防火墙介绍
- 限定符
- CMD下设置网关
- 多域控制器环境下Active Directory灾难恢复
- Mac OSX Commands:mdls