网络攻防实战研究:MySQL数据库安全
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.7 将文本文件去重并导入MySQL数据库

我们在工作中经常会碰到这样的情况:获取了一些文本数据,但由于其文件太大(超过1GB),无法直接读取。因此,需要将这些文本文件数据库化并去重,从而提高工作效率。

1.7.1 文件排序命令sort

sort命令在Linux里的作用非常大。它可以将文件排序,并将排序结果以标准形式输出。sort命令既可以从特定的文件中获取,也可以从标准形式的输入中获取,其格式如下。

· -b:忽略每行前面的空格。

· -c:检查文件是否已经按照顺序排列。

· -d:在排序时,处理英文字母、数字及空格字符,忽略其他字符。

· -f:在排序时,将小写字母视为大写字母。

· -i:在排序时,除了040~176的ASCII字符,忽略其他字符。

· -m:将几个序号的文件合并。

· -M:将前三个字母按照月份的缩写排序。

· -n:按照数值大小排序。

· -o<输出文件>:将排序结果存入指定文件。

· -r:反向排序。

· -t<分隔字符>:指定排序时所用的栏位分隔字符。

· +<起始栏位>-<结束栏位>:以指定的栏位排序(由起始栏位开始,到结束栏位的前一栏位结束)。

sort命令以文件或文本中的每一行为单位进行比较。比较原则是:从首字符开始,依次按ASCII码值进行比较,将比较结果按照升序输出。最简单的sort命令是“sort filename”。

1.7.2 去重命令uniq

uniq命令用于检查和删除文本文件中重复出现的行和列,其格式如下。

· -c或--count:在每个行/列的旁边显示其重复出现的次数。

· -d或--repeated:仅显示重复出现的行/列。

· -f<栏位>或--skip-fields=<栏位>:不比较指定的栏位。

· -s<字符位置>或--skip-chars=<字符位置>:不比较指定的字符。

· -u或--unique:仅显示出现一次的行/列。

· -w<字符位置>或--check-chars=<字符位置>:指定需要比较的字符。

· --help:显示帮助信息。

· --version:显示版本信息。

· [输入文件]:指定已经完成排序的文本文件。

· [输出文件]:指定需要输出的文件。

最简单的uniq命令是“uniq filename”,表示将filename文件中相邻的重复内容去掉,对大量数据去重很有帮助。