美文网首页
2021-04-02 大文本文件数据查重

2021-04-02 大文本文件数据查重

作者: oracle3 | 来源:发表于2021-04-02 16:25 被阅读0次

最近需要对256G的txt文件做排序,参考文章如何对一个大文本进行按每行去重操作?写了如下脚本

#! /bin/ksh

#Cleanup any lefover files
rm -f *.sorted > /dev/null
rm -f sorted.file
#Splitting $ORIGINAL_FILE into chunks ...
#split  -l $MAX_LINES_PER_CHUNK -a 4  $ORIGINAL_FILE $CHUNK_FILE_PREFIX

for file in *.txt
do
    sort $file > $file.sorted &
done
wait

#Merging chunks to $SORTED_FILE ...
sort -m *.sorted > sorted.file

#Cleanup any lefover files
rm -f *.sorted > /dev/null

可以比较快的得到排序后的文件sorted.file,但是如果要去掉重复记录的话就需要更改脚本
在sort -m *.sorted > sorted.file下面增加

sort -u -m *.sorted > sorted.file.uniqe

这样可以获得两个文件,然后使用diff比较就可以得到重复数据

diff sorted.file sorted.file.uniqe 
818d817
< 1b9f36864e9b343c9456afea1f1c4318a3b06b0729c49113b888e68204667e0037348d55fb3fdd9fbbe1d2d7b2ec498dbc6fdb9119673d1cf681ce1d272d2f5f0c227daa3bfc0053891153e0ff197826b2a2ada24e9b1651d53f21c66baeba3db7340b04b4ae87fe33eab4d19a31c1cc9f654ebdd5d17f31847ae062be1b92bd

实际运行中,由于我需要排序的文件在200G以上,因此出现下面的问题:
/tmp/sortA3aLjF: No space left on device

查看tmp空间确实不够用,查看info sort,看到
The -T option allows you to specify somewhere else besides /tmp for sort to put its stuff.
因此修改脚本如下:

#! /bin/ksh

#Cleanup any lefover files
rm -f *.sorted > /dev/null
rm -f sorted.file
#Splitting $ORIGINAL_FILE into chunks ...
#split  -l $MAX_LINES_PER_CHUNK -a 4  $ORIGINAL_FILE $CHUNK_FILE_PREFIX

for file in *.txt
do
    sort -T /data1 $file > $file.sorted
done
wait

#Merging chunks to $SORTED_FILE ...
sort -T /data1 -m *.sorted > sorted.file
sort -T /data1 -u -m *.sorted > sorted.file.uniqe

#Cleanup any lefover files
#rm -f *.sorted > /dev/null

其中/data1/目录是另外一个2T的独立磁盘

相关文章

  • 2021-04-02 大文本文件数据查重

    最近需要对256G的txt文件做排序,参考文章如何对一个大文本进行按每行去重操作?[https://www.zhi...

  • 关键数据指标含义

    关键数据指标含义 数据查看各指标含义 展现数据 1、展示数:广告展示数 2、点击数:广告点击数 3、点击率:点击数...

  • 数据库操作语句类型(DQL、DML、DDL、DCL)简介

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。 1. 数...

  • sql语言分类

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。 1. 数...

  • 2021-04-02

    2021-04-02《如何说孩子才会听》第三讲

  • 第七章 使用MongoDB shell执行其他数据查找操作

    MongoDB 高级集合数据查找 题纲: 确定与查找操作匹配的文档数; 以特定的顺序返回文档; 限制返回的文档数;...

  • 冒泡排序(Java 版本 文字描述+排序过程的截图)

    1:概念 通过相邻两个数组进行比较把小的数后移(实现从大到小的排序)或者把大的数往后移(实现重小到大的排序)。 如...

  • SQL语句基础

    SQL:结构化查询语言 SQL语言分类 DDL:数据定义语言。 DML:数据操作语言。 DQL:数据查询语言。 数...

  • MySQL

    SQL语言分类 DQL 数据查询语言 DML 数据操作语言 DCL 数据控制语言 DDL 数据定义语言 DTL 数...

  • pandas 数据预处理

    pandas 数据加载 pandas 数据查看 pandas 非编码数据编码 去重 空值 空值 --- >> 填充...

网友评论

      本文标题:2021-04-02 大文本文件数据查重

      本文链接:https://www.haomeiwen.com/subject/wwlqkltx.html