linux shell 脚本攻略学习8---md5校验,sort排序,uniq命令详解
一、校验与核实
目前最为出名的校验技术是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
对sum.txt进行默认排序:
amosli@amosli-pc:~/learn$ sort sum.txt
去除sum.txt中的重复数值:
amosli@amosli-pc:~/learn$ sort sum.txt | uniq
sort命令详解:
1、按数字进行排序,参数-n
sort -n file.txt
上面举例即是按数字进行排序的。
2、按逆序进行排序,参数-r
sort -r file.txt
举例:
amosli@amosli-pc:~/learn$ sort -r sum.txt
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
mac
winxp
win8.
linux
-k指定了排序应该执照哪一个键(key)来进行。键指的是列号。
如下:
1)按第1列,逆序排列
amosli@amosli-pc:~$ sort -nrk data.txt
linux
win8.
winxp
mac
2)按第2列排列
amosli@amosli-pc:~$ sort -k data.txt linux
mac
win8.
winxp
6、其他参数
-z参数,为了使sort的输出与以'\0' 作为参数终止符的xargs命令相兼容,采用下面的命令:
sort -z data.txt | xargs - amosli@amosli-pc:~$ sort -z data.txt | xargs -
mac
winxp
win8.
linux
-b参数,用于忽略文件中的前导空白字符,-d参数用于指明以字典序进行排序。
amosli@amosli-pc:~$ sort -bd data.txt mac
winxp
win8.
linux
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
amos
bash
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::gnu
d::linux
u::bash
u::hack
amosli@amosli-pc:~$ sort da.txt | uniq -s -w d::linux
u::bash
忽略前2个字符(-s 2),指定用于比较的最大字符数方式来选定该键(-w 2)
5.-z参数,生成包含0值字节终止符的输出,与sort -z命令类似
amosli@amosli-pc:~$ uniq -z da.txt
u::gnu
d::linux
u::bash
u::hack
linux shell 脚本攻略学习8---md5校验,sort排序,uniq命令详解的更多相关文章
- linux shell 脚本攻略学习20--awk命令入门详解
awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...
- linux shell 脚本攻略学习13--file命令详解,diff命令详解
一.file命令详解 find命令可以通过查看文件内容来找出特定类型的文件,在UNIX/ Linux系统中,文件类型并不是由文件扩展名来决定的(windows中却正是这么做的),file命令的目的是从 ...
- linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解
文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...
- linux shell 脚本攻略学习16--wc命令详解,tree命令详解
在文本处理的工作中,统计文件的行数,单词数和字符数非常有用.而对于开发人员本身来说,统计LOC(line of code ,代码行数)是一件重要的工作.linux中有什么命令可以帮助我们做统计呢?没错 ...
- linux shell 脚本攻略学习14--head命令详解,tail命令详解
当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除 ...
- linux shell 脚本攻略学习11--mkdir和touch命令详解
一.创建目录(mkdir命令详解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amo ...
- linux shell 脚本攻略学习9--rename命令详解
rename命令详解: 对文件重命名是常用的操作之一,一般对单个文件的重命名用mv命令,如: amosli@amosli-pc:~/learn/example$ ls abc.txt amosli@a ...
- linux shell 脚本攻略学习7---tr命令详解
tr命令详解 什么是tr命令?tr,translate的简写,translate的翻译: [trænsˈleit] vi. 翻译, 能被译出 vt. 翻译, 解释, 转化, 转变为, 调动 在这里用到 ...
- linux shell 脚本攻略学习5---find命令详解
1.find命令详解 语法: find base_path#base_path可以是任何位置,find会从该位置向下找 实例: amosli@amosli-pc:~$ find /home/amosl ...
随机推荐
- Android -- TypedArray
当我们自定义View的时候,在给View赋值一些长度宽度的时候,一般都是在layout布局文件中进行的.,比如android:layout_height="wrap_content" ...
- 能够在Linux系统中运行的5款大型耐玩游戏
Linux 可能不会很快成为游戏玩家选择的平台 —— Valve Steam Machines 的失败似乎是对这一点的深刻提醒 —— 但这并不意味着该平台没有稳定增长,并且拥有相当多的优秀游戏. 从独 ...
- 前端开发必备 40款优秀CSS代码编写工具推荐
摘要:CSS工具可以简化工作流,可以提高CSS编写速度,是开发者和设计者所不可缺少的.本文列举了40种CSS工具,功能涉及CSS菜单.动画.3D图形.响应式页面.图层.按钮等界面元素的设计与制作,你定 ...
- spring /spring boot中mock
1 Mockito简介 1.1 Mockito是什么 Mockito是一个简单的流行的Mock框架.它允许你创建和配置mock对象.使用Mockito可以明显的简化对外部依赖的测试类的开发.一般使 ...
- 【Python】使用torrentParser1.03对单文件torrent的分析结果
C:\Users\horn1\Desktop\python\42-torrentParser>python torrentParser.py 文件名=./5.torrent 文件结构: anno ...
- yii源码三 -- db
<AR> CActiveRecord:path:/framework/db/ar/CActiveRecord.phpoverview:is the base class for class ...
- C/C++——程序的内存分配
C/C++程序内存分配 一.预备知识-程序的内存分配 一个由c/C++编译的程序占用的内存分为下面几个部分 1.栈区(stack):由编译器自己主动分配释放 ,存放函数的參数值,局部变量的值等.其操作 ...
- C++ 第八课 标准c字符和字符串
atof() 将字符串转换成浮点数 atoi() 将字符串转换成整数 atol() 将字符串转换成长整型数 isalnum() 当字母或数字字符时, 返回真值 isalpha() 当字母字符时, 返回 ...
- h5画图表
折线: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&q ...
- 再谈IE的浏览器模式和文档模式[转]
http://www.cnblogs.com/liuzhendong/archive/2012/04/27/2474363.html 以前在 “IE8兼容视图(IE7 mode)与独立IE7的区别”一 ...