linux shell 脚本攻略学习8---md5校验,sort排序,uniq命令详解
2023-09-14 08:58:56 时间
一、校验与核实
目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和。
举例:
amosli@amosli-pc:~/learn$ md5sum text.txt
186931e2ff7cb0cde2c17b2298be604c text.txt
如上所示,使用md5sum生成了一个由32个字符组成的十六进制串。
可以将输出的校验重定向到一个文件中,然后再用这个md5文件来核实数据的完整性:
amosli@amosli-pc:~/learn$ md5sum text.txt > md5_text.txt amosli@amosli-pc:~/learn$ cat md5_text.md5 186931e2ff7cb0cde2c17b2298be604c text.txt
md5sum的计算方法:
md5sum file1 file2 file3 ...
举例:
amosli@amosli-pc:~/learn$ md5sum text.txt out.txt output.txt
186931e2ff7cb0cde2c17b2298be604c text.txt
ce4ff16bd0044c0831a83fc1eca981eb out.txt
8a6b721e2d5925b78a4c8f4c82dda4bf output.txt
如何检验文件是否所提供的.md5相匹配?
amosli@amosli-pc:~/learn$ md5sum -c md5_text.md5
text.txt: OK
SHA1是另一种常用的算法,与md5极为相似。
举例:
amosli@amosli-pc:~/learn$ sha1sum text.txt 30ede30817e1d3a8a15d903187899c2bccd7ad8f text.txt amosli@amosli-pc:~/learn$ sha1sum text.txt > sha1_text.sha1 amosli@amosli-pc:~/learn$ sha1sum -c sha1_text.sha1 text.txt: OK
不同的是sha1输出的是长度为40位的十六进制串,另外,文件后缀名也由.md5改为sha1。
二、排序、单一和重复
sort命令进行排序,uniq命令是从stdin(标准输入)或文本中提取单一的行,sort和uniq能够用来查找重复的数据.
举例:
sum.txt
amosli@amosli-pc:~/learn$ cat sum.txt 5 4 3 5 4 3
对sum.txt进行默认排序:
amosli@amosli-pc:~/learn$ sort sum.txt 3 3 4 4 5 5
去除sum.txt中的重复数值:
amosli@amosli-pc:~/learn$ sort sum.txt | uniq 3 4 5
sort命令详解:
1、按数字进行排序,参数-n
sort -n file.txt
上面举例即是按数字进行排序的。
2、按逆序进行排序,参数-r
sort -r file.txt
举例:
amosli@amosli-pc:~/learn$ sort -r sum.txt 5 5 4 4 3 3
3、按月份进行排序,参数-M
sort -M months.txt
举例:
amosli@amosli-pc:~/learn$ cat months.txt 一月 十月 五月 amosli@amosli-pc:~/learn$ sort -M months.txt 一月 五月 十月
4、合并排序过的文件,-m参数
sort -m sorted1 sorted2
如果需要合并两个排过序的文件,而且不需要对合并后的文件再进行排序,可以使用如上式子。
5、依据键或列进行排序,-k参数
举例:
data.txt
amosli@amosli-pc:~$ cat data.txt 1 mac 2000 2 winxp 4000 3 win8.1 1000 4 linux 1000
-k指定了排序应该执照哪一个键(key)来进行。键指的是列号。
如下:
1)按第1列,逆序排列
amosli@amosli-pc:~$ sort -nrk 1 data.txt 4 linux 1000 3 win8.1 1000 2 winxp 4000 1 mac 2000
2)按第2列排列
amosli@amosli-pc:~$ sort -k 2 data.txt 4 linux 1000 1 mac 2000 3 win8.1 1000 2 winxp 4000
6、其他参数
-z参数,为了使sort的输出与以'\0' 作为参数终止符的xargs命令相兼容,采用下面的命令:
sort -z data.txt | xargs -0 amosli@amosli-pc:~$ sort -z data.txt | xargs -0 1 mac 2000 2 winxp 4000 3 win8.1 1000 4 linux 1000
-b参数,用于忽略文件中的前导空白字符,-d参数用于指明以字典序进行排序。
amosli@amosli-pc:~$ sort -bd data.txt 1 mac 2000 2 winxp 4000 3 win8.1 1000 4 linux 1000
uniq命令详解:
uniq命令用于通过消除重复内容,只能用于排过序的数据输入,因此,uniq要么使用管道,要么将排过序的文件作为输入。
举例:
sorted.txt
amosli@amosli-pc:~$ cat sorted.txt hi amos hi bash
使用uniq过滤重复的值
amosli@amosli-pc:~$ sort sorted.txt | uniq amos bash hi
1、参数-u,只显示唯一的行(在输入文件中没有出现重复的行)
amosli@amosli-pc:~$ sort sorted.txt | uniq -u amos bash
2、参数-c,统计各行在文件中出现的次数
amosli@amosli-pc:~$ sort sorted.txt | uniq -c 1 1 amos 1 bash 2 hi
3、参数-d,查找文件中出现重复的行
amosli@amosli-pc:~$ sort sorted.txt | uniq -d hi
4、参数-s,-w指定键
-s 指定可以跳过前N个字符;
-w指定用于比较的最大字符数。
举例:
da.txt
amosli@amosli-pc:~$ cat da.txt u:01:gnu d:04:linux u:01:bash u:01:hack
amosli@amosli-pc:~$ sort da.txt | uniq -s 2 -w 2 d:04:linux u:01:bash
忽略前2个字符(-s 2),指定用于比较的最大字符数方式来选定该键(-w 2)
5.-z参数,生成包含0值字节终止符的输出,与sort -z命令类似
amosli@amosli-pc:~$ uniq -z da.txt u:01:gnu d:04:linux u:01:bash u:01:hack
相关文章
- 学习Linux KVM:驾驭命令的秘密武器(linuxkvm命令)
- 提升性能:嵌入式Linux优化之道(嵌入式linux性能优化)
- Linux查看文件夹容量的最佳方式(linux统计文件夹大小)
- 轻松理解Linux分区设置(linux分区设置)
- Linux入门教学:从零开始(linux入门学习)
- 掌握编程与Linux,开启自己的未来之旅(编程与linux)
- Linux安装Win10:一步一步走!(linux安装win10)
- 使用SSH命令控制Linux服务器(ssh命令linux)
- Linux带来的第三方库火热开源(linux第三方库)
- 学习Linux,受益无穷!(学linux好处)
- Linux系统自学指南:学习Linux必备书籍(自学linux书籍推荐)
- Linux下批量重命名实现方法(批量重命名linux)
- Linux之七大分支:探究其源头(linux的分支)
- Linux 基础:轻轻松松入门,助您愉快学习(linux基础学习)
- Linux 环境变量:知识全面解析(linux环境变量)
- 轻松学习Linux:视频入门指南(linux视频入门)
- Linux操作系统教程:简单学习run文件的运行方法(linux下run文件)
- Linux命令:获取当前日期的方法(linux获取当前日期)
- 如何在 Linux 系统上使用电视家观看直播?(电视家linux版)
- 探索Linux中命令行历史记录(linux执行历史命令)
- Linux网络重启命令:保障你的网络安全(linux网络重启命令)
- 命令Linux掌握五行命令轻松搞定系统维护(linux某几行)
- 步步惊心——6.3版Linux安装指南(6.3安装linux)
- 如何使用Linux脚本中的sleep命令?(linux脚本sleep)
- 如何设置Linux开机自动运行程序(linux开机自动运行)
- 一步步学习C在Linux下实现命令行操作(c 执行linux命令)
- Linux网络命令配置 优化网络连接与管理(linux配置网络命令)
- Linux RARP命令——洞悉网络节点IP地址(linux rarp命令)
- 如何使用Linux重启系统的命令(linux重启系统的命令)