一、校验与核实

目前最为出名的校验技术是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命令详解的更多相关文章

  1. linux shell 脚本攻略学习20--awk命令入门详解

    awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...

  2. linux shell 脚本攻略学习13--file命令详解,diff命令详解

    一.file命令详解 find命令可以通过查看文件内容来找出特定类型的文件,在UNIX/ Linux系统中,文件类型并不是由文件扩展名来决定的(windows中却正是这么做的),file命令的目的是从 ...

  3. linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

  4. linux shell 脚本攻略学习16--wc命令详解,tree命令详解

    在文本处理的工作中,统计文件的行数,单词数和字符数非常有用.而对于开发人员本身来说,统计LOC(line of code ,代码行数)是一件重要的工作.linux中有什么命令可以帮助我们做统计呢?没错 ...

  5. linux shell 脚本攻略学习14--head命令详解,tail命令详解

    当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除 ...

  6. linux shell 脚本攻略学习11--mkdir和touch命令详解

    一.创建目录(mkdir命令详解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amo ...

  7. linux shell 脚本攻略学习9--rename命令详解

    rename命令详解: 对文件重命名是常用的操作之一,一般对单个文件的重命名用mv命令,如: amosli@amosli-pc:~/learn/example$ ls abc.txt amosli@a ...

  8. linux shell 脚本攻略学习7---tr命令详解

    tr命令详解 什么是tr命令?tr,translate的简写,translate的翻译: [trænsˈleit] vi. 翻译, 能被译出 vt. 翻译, 解释, 转化, 转变为, 调动 在这里用到 ...

  9. linux shell 脚本攻略学习5---find命令详解

    1.find命令详解 语法: find base_path#base_path可以是任何位置,find会从该位置向下找 实例: amosli@amosli-pc:~$ find /home/amosl ...

随机推荐

  1. VS Code .vue文件代码缩进以及格式化代码

    首先在应用商店中搜索“Vetur”插件安装,然后进行下面操作: 文件->首选项->设置,然后在右边编辑框输入以下设置: { "prettier.tabWidth": 4 ...

  2. Twitter雪花算法 SnowFlake算法 的java实现

    概述 SnowFlake算法是Twitter设计的一个可以在分布式系统中生成唯一的ID的算法,它可以满足Twitter每秒上万条消息ID分配的请求,这些消息ID是唯一的且有大致的递增顺序. 原理 Sn ...

  3. 三种简洁的经典高效的DIV+CSS制作的Tab导航简析

    在网页中应用选项卡可以使网页显得更紧凑,结合AJAX技术可以使页面在有限的空间内展现更多的内容.本文主要介绍几种简洁的选项卡效果的实现(不涉及滑动门和AJAX),附有实例,无图片,兼容性较好,方便大家 ...

  4. 使用Java开发微信公众平台(二)——消息的接收与响应

    上一篇文章(http://www.jerehedu.com/fenxiang/171807_for_detail.htm )中,我们学习了使用Java语言开发微信公众平台的第一部分——环境搭建与开发接 ...

  5. 利用NATAPP隧道解决微信公众号开发之本地调试难题

    一.问题 众所周知,微信公众号开发需要公网的有效域名和80端口,本机当然互联网是访问不了的.那么我们难道去一个公网的服务器去开发吗?那样是不是太土了. 答案当然是,NO 当然我们在做微信支付的时候,有 ...

  6. Git创建分支/GIT提交分支

    git clone xxx.git cd fwspp-react git init touch README.md git add README.md git commit -m "add ...

  7. TCP/IP具体解释学习笔记--TCP的超时与重传

    1.基本概念 TCP之所以能够安全的将数据在传输中的安全性,是因为它每次给对方发送数据,都会等待对方给个确认,当长时间收不到这个确认,发送端就会重发这个数据. 2.超时时间的測量 要測超时时间,TCP ...

  8. [Canvas]Running Horse

    下载地址:https://files.cnblogs.com/files/xiandedanteng/52-RunningHorse.rar,下载完毕后请使用Chrome浏览器打开Index.html ...

  9. 1418 This function has none of DETERMINISTIC,NO SQL,or R

    标签: [err]1418 函数创建报错 分类: 菜鸟DBA之MySQL --------------------------------------------------------------- ...

  10. 【树莓派】使用xdrp远程登录树莓派的图形界面

    之前采用了vnc方式方式的树莓派,但是配置还有点步骤,刚才看了一下,试验了一下xrdp,直接很简单就好了. 树莓派DIY笔记之前有介绍过用VNC连接到树莓派的方法.在Windows下,当然还是自带的远 ...