一、MD5
通过使用校验和核实,我们就可以识别出那些在网络传输过程中出现损坏的文件,并进行重发
最知名且使用最为广泛的校验和技术是md5sum和SHA-1。它们对文件内容使用相应的算法
来生成校验和。
1.1、生成MD5
md5sum a2
从上面结果可以看到 md5sum是一个32个字符的16进制串
1.2、多个文件校验和
md5sum file1 file2 file3 使用多个文件时,会显示单个文件的校验和
[checknum1] file1
[checknum2] file2
[checknum3] file3
1.3、校验数据完整性
先将md5输入到指定文件中
md5sum a2 >sumchekc/a2.md5
校验文件完整性
md5sum -c ./sumchekc/a2.md5
1.4、校验多个文件的完整性
md5sum -c *.md5
1.5、对目录进行校验
校验和是从文件中计算得来的。对目录计算校验和意味着我们需要对目录中的所有文件以递归的方式进行计算。这可以用命令 md5deep 或 sha1deep 来实现。首先,需要安装md5deep软件包以确保能找到
这些命令。
$ md5deep -rl directory_path > directory.md5
# -r 使用递归的方式
# -l 使用相对路径。默认情况下,md5deep 会输出文件的绝对路径
或者也可以结合 find 来递归计算校验和:
$ find directory_path -type f -print0 | xargs -0 md5sum >> directory.md5
用下面的命令进行核实:
$ md5sum -c directory.md5
二、排序、唯一与重复
2.1 定义
sort 命令既可以从特定的文件,也可以从 stdin 中获取输入,并将输出写入 stdout 。 uniq
的工作方式和 sort 一样
2.2、语法
sort file1.txt file2.txt >sorted.txt
或者
sort file1.txt file2.txt -o sorted.txt
2.3、实例1
从下面的结果看到是把文件内容排序后输出到sorted.txt文件中
2.4、选项-n 按照数字排序
将如下文件进行排序:
排序
sort -n a2 #同样排序不会修改原文件内容
排序后再来看原文件 顺序还是和原来一样
2.5、选项-r 逆序排序
sort -r a2
2.6、选项-m合并两个排序的文件
sort -m sorted1 sorted2
2.7 找出已排序文件中不重复的行
来看如下已排序文件
去重:
sort sort/sorted.txt | uniq
2.8 -c选项检查是否排过序
对文件a2 排序输出到sorted.txt
-c 选项检查是否已正确排序 ,如果文件已经排序, sort -c 会返回为0的退出码
( $? ),否则返回非0
检查排序脚本如下:
#!/bin/bash
sort -c sort/sorted.txt
if [ $? -eq 0 ] ;then
echo "sorted.txt has sorted"
else
echo "sorted.txt has unsorted"
fi
授权并执行脚本,结果如下:
把脚本中文件改为a2
再执行脚本
2.9 -k 指定排序列
2.9.1按照第一列 排序
sort -nrk 1 sort/data.txt
#-nr 表明按照数字,采用逆序形式排序
2.9.2、按照第二列排序
sort -k 2 sort/data.txt
2.9.3 指定排序字符范围列
有如下数据。
指定第一个字符为排序
sort -nk 1,1 data.txt