你会利用Shell脚本进行文件内容去重的操作?

 最近在处理文件的时候,遇到文件内容存在大量重复项的情况,很显然需要文件内容去重。因为使用的是     Python      ,本来想要找找Python文件内容去重的方法,但是看到的基本利用Set或者List等方法(还没来得及逐一验证)。后来,找到一个利用Shell脚本写的文件内容去重,用了一下觉得很赞,在这里深入的研究一下,也算是对Shell了解和熟悉一下。

    你会利用Shell脚本进行文件内容去重的操作?_设计制作_测量仪表  

shell脚本如下所示:

#!/bin/bash

lines=$(wc -l $1 | sed 's/ .*//g')

lines_per_file=`expr $lines / 20`

split -d -l $lines_per_file $1 __part_$1

for file in __part_*

do

{

sort $file > sort_$file

} &

done

w     ai   t

sort -smu sort_* > $2

rm -f __part_*

rm -f sort_*

脚本运行的命令如下:(假如文件保存的名字为:merge_sort.sh)

./merge_sort.sh file_to_be_sort file_sor     te   d

下面,来说明一下脚本中几个比较重要的命令。

wc -l命令的意思就是统计文本的行数,但是得到的结果如下图所示:

 你会利用Shell脚本进行文件内容去重的操作?_设计制作_测量仪表

除了得到文本的所有行外,文件的名字也输出了,如果只要得到行数,后面的内容需要替换掉。

sed命令可以完成数据的搜索并替换,具体格式如下:

sed 's/要被取代的字串/新的字串/g'

sed 's/ .*//g'命令的意思是把除换行符以外的任意     字符   去掉。

split命令用于分割文件。-d表示分割后的文件后缀用数字代替字母。-l表示分割后的文件中,每个文件有多少行。

sort命令用于对文件内容进行排序。-s表示稳定排序,可以让sort不在关键词相同的时候再比较一整行(一般是要关键词相同的时候,才比较一整行),-u删除重复项,-m合并所有文件。

这里,只是对脚本中几个重要的命令的一些简要说明。其实,这几个命令有更加强大的用法。后续慢慢体会吧。




21
199
0
91

相关资讯

  1. 1、Win10提示显示器输入不支援怎么解决?883
  2. 2、2345看图王如何设置另存时自动重命名?另存时自动重命名的设置步骤4525
  3. 3、微信app中怎么兑换步数宝里商品微信app兑换步数宝里商品的教程2247
  4. 4、Win10系统激活失败提示错误代码0xc004f074怎么解决?2792
  5. 5、CAD怎么调节线型比例?AutoCAD2008线型比例修改方法分享4961
  6. 6、Win10系统提示windows错误报告占CPU怎么办?1189
  7. 7、Win7系统提示“存储空间不足,无法处理此命令”怎么办?1224
  8. 8、百度商桥如何设置常用语?百度商桥设置常用语的操作步骤4619
  9. 9、Win10专业版安装iis不成功怎么办?Win10怎样正确安装IIS组件3976
  10. 10、ppt中怎么设计环形图片排版?ppt设计环形图片排版的方法839
全部评论(0)
我也有话说
0
收藏
点赞
顶部