1.文件校验
1. md5sum
eg:
md5sum filename
注:生成一个128位的二进制位,即32位的十六进制字符串

1.验证文件的正确性:
md5sum  file1 file2 > file_sum.md5
下一次想看一下文件是否被改动
md5sum -c file_sum.md5
file1:ok
file2:ok
验证成功
2.验证一个目录dir下的所有文件的正确性
find dir/ -type f -print -exec md5sum {} >file_sum.md5 \;
or
find dir/ -type f -print0 | xargs -0 md5sum >> file_sum.md5
注:用print0是因为如果文件名中有空格的,不计算在内

这会生成一个文件:file_sum.md5
md5sum -c file_sum.md5
若全部ok,则正确
3.校验网上下载的文件是否正确
将下载的文件和MD5文件放在目录dir下(如果是md5字符串,可以新建一个文件为file_sum.md5)
cd dir 
md5sum -c file_sum.md5
若输出ok,则验证正确

2. sha1sum
sha1算法和md5差不多,但他生成了160位二进制数,即
40位16进制数
用法同md5sum
eg sha1sum file1 file2 > file.sha1
检验:

sha1sum -c file.sha1

2.对文件中的数据进行排序,并查找唯一值
sort和uniq

sort可以对文件的没行按关键值进行排序,如月份-M,字典顺序-d等
注意:sort和uniq对文件内容本身不改变,所以,应该重定向到别的文件中

1.对多个文件中的内容进行排序
eg:

$ cat > file1
3
4
5
e

$ cat > file2
ge
re
e
$ sort file1 file2 > sorted.txt
$ cat sorted.txt
3
4
5
e
e
ge
re

2.对文件按列排序
$ cat > data.txt
1 mac2000
2 winxp4000
3 bsd1000
4 linux1000

1.对数据按第一组逆序
$ sort -nrk 1 data.txt
注:n是数字排序,r是逆序,k是第几列关键字key 1表示第一列

$ sort -k 2 data.txt
3 bsd1000
4 linux4000
1 mac2000
2 winxp4000

3.在文件中删除重复行
$ cat > data.txt
ll
ll
ss
ss
$ uniq data.txt > uniq.txt
$ cat uniq.txt
ll
ss
4.使用uniq计算字符串中重复的次数
$ echo 'shebhaaa' | sed 's/[^\n]/&\n/g' | sed sort | uniq -c | tr -d ' \n'
3a1b1e2h

3.分割文件
1.生成指定大小的文件
$ dd if=/dev/zero bs=100k count=1 of=data.file
注:将会生成由全零的100k文件data.file
2.分割文件
$ split -b 20k data.file
xaa xab xac xad xae

$ split -b 20k data.file -d -a 4
x0000 x0001 x0002 x0003 x0004

使用-d表示用数字,-a指定为4个长度

$ split -b 20k data.file -d -a 4 hello
hello0000 hello0001 hello0002 hello0003 hello0004
3.用csplit来根据关键字分割文件
$ cat > server.log
SERVER-1
[connection] 192.168.0.1 success
[connection] 192.168.0.2 failed
[disconnect] 192.168.0.3 pending
[connection] 192.168.0.4 success
SERVER-2
[connection] 192.168.0.1 failed
[connection] 192.168.0.2 failed
[disconnect] 192.168.0.3 success
[connection] 192.168.0.4 failed
SERVER-3
[connection] 192.168.0.1 pending
[connection] 192.168.0.2 pending
[disconnect] 192.168.0.3 pending
[connection] 192.168.0.4 failed

$ csplit server.log /SERVER/ -n 2 -s {*} -f server \
-b "%02d.log" ; rm server00.log
$ ls
server01.log server02.log server03.log server.log 
解释:
首先,csplit可以根据关键字来分割文件
/[regex]/是一个模式匹配,匹配文件中的关键字,匹配成功后,
把上一次匹配或文件的开头到匹配位置之前的内容提取出来,作
为一个分割文件
-n 指定生成为两个数字,如01,02,03
-s 指定匹配多少行,{num}可指定匹配行数,*为到文件尾
-f 指定生成文件的前缀
-b 为指定后缀格式,%02d为两位数字
  实现了:filename = 前缀+后缀
后面执行删除是因为第一行就出现了关键字,所以是个空文件

http://blog.csdn.net/xiaobing_blog/article/details/9866471

linux shell——md5sum,sha1sum,sort,uniq (转)的更多相关文章

  1. 转-Shell笔记——命令:Sort,uniq,join,cut,paste,split

    转自:http://blog.csdn.net/wklken/article/details/6562098 Sort,uniq,join,cut,paste,split 命令—— Sort Sort ...

  2. linux命令使用 cut/sort/uniq

    我记得之前去XX网面试的那个面试题是这样的:有个apache.log 文件文本内容如下:======================[niewj@centSvr ~]$ cat apache.log  ...

  3. linux命令-awk,sort,uniq

    学习地址:http://man.linuxde.net/awk#awk的工作原理 awk 选项参数说明: -F fs or --field-separator fs 指定输入文件折分隔符,fs是一个字 ...

  4. 【转帖】linux sort,uniq,cut,wc,tr,xargs命令详解

    linux sort,uniq,cut,wc,tr,xargs命令详解 http://embeddedlinux.org.cn/emb-linux/entry-level/201607/21-5550 ...

  5. linux sort,uniq,cut,wc命令详解

    linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...

  6. linux sort,uniq,cut,wc,tr命令详解

    sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...

  7. Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

    在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...

  8. centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课

    centos linux 系统日常管理4  scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法  第十七节课 rsync可以增量同步,scp不行 ...

  9. (转)linux sort,uniq,cut,wc命令详解

    linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...

随机推荐

  1. php curl调用相关api

    一.基本步骤 1.本次模拟是php的相关post请求,可通过CURLOPT_CUSTOMREQUEST设定相关POST.GET.PUT.DELETE相关适应REST API 2.相关重要的是curl_ ...

  2. python自动化测试

    python自动化测试 欢迎光临 python自动化测试 小站! 小站基于IT行业,重点关注python,软件自动化测试,测试等. 联系方式 飞信 372818219 相关的群:python开发自动化 ...

  3. linux服务器出现严重故障后的原因以及解决方法

    1.把系统安装光盘插入,重启机器,启动时迅速按下Del键,进入CMOS,把启动顺序改为光盘先启动,这样就启动了Linux安装程序,按F5,按提示打入Linux rescue回车,进入救援模式,接下来是 ...

  4. ios控件 UIControl

    < UIControl> 1 处理用户事件的控件的基类,如UIButton,UISlider等 2 一般不直接实例化,而是使用他的子类 3 可以通过跟踪触摸事件来设置和获取控件状态,并且这 ...

  5. mysql开启/关闭 update delete 安全模式

    在使用mysql执行update的时候,如果不是用主键当where语句,会报如下错误,使用主键用于where语句中正常. 异常内容:Error Code: 1175. You are using sa ...

  6. mysql if then

    CREATE PROCEDURE userinfo_modify( IN id INT ,IN loginid INT ,IN levelid INT ,IN namestr VARCHAR(50) ...

  7. fdisk添加磁盘

    1.            通过Fdisk查看系统分区详细信息: Fdisk –l   详解: [root@jetsenLin ~]# fdisk -l Disk /dev/sda: 10.7 GB, ...

  8. 移植Iperf到android 用来学习linux移植到安卓的例子

    Iperf移植记录 1.生成arm编译需要的头文件config.h ./configure --host=arm如果需要make clean make distclean2.增加Android.mk文 ...

  9. ASP.NET中使用Server.Transfer()方法在页间传值 实例

    以下代码在VS2008中测试通过 <%@ Page Language="C#" AutoEventWireup="true" CodeFile=" ...

  10. JS-如何把字符串转换成数组

    var a = "1,22,33,44"; // 字符串 var b = a.split(","); // 将字符串按照","分割,存入数组 ...