Linux脚本攻略学习笔记之MD5与sort实例演示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/whandgdh/article/details/84524178

一、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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/whandgdh/article/details/84524178