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. javascript 如何正确使用getElementById,getElementsByName(), and getElementsByTagName()

    WEB标准下可以通过getElementById(), getElementsByName(), and getElementsByTagName()访问DOCUMENT中的任一个标签. (1)get ...

  2. linux中iptables配置文件及命令详解详解

    iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconfig/iptables. 1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放. 下 ...

  3. php 上传缩放图片

    有时上传图片时因为图片太大了,不仅占用空间,消耗流量,而且影响浏(图片的尺寸大小不一).下面分享一种等比例不失真缩放图片的方法,这样,不管上传的图片尺有多大,都会自动压缩到我们设置尺寸值的范围之内.经 ...

  4. JavaScript高级程序设计:第三章

    基本概念 一.语法: 1.区分大小写: 2.标识符:指变量.函数.属性的名字,或者函数的参数.标识符可以是按照下列格式规则组合起来的一个或多个字符: (1)第一个字符必须是一个字母.下划线(_).或者 ...

  5. 购物车(Shopping cart) —— B2C网站核心产品设计 (二)

    购物车是做什么的? 我们先来看一下现实超市中的购物车,一个带四个轱辘的铁筐子,客人推来推去,看到什么东西喜欢,就扔进去,觉得东西差不多了,就推到收银台. 那B2C网站中的购物车又是一个什么东西呢? 从 ...

  6. JS调用OC方法

    - (void)myMethod:(CDVInvokedUrlCommand*)command { NSString* echo = [command.arguments objectAtIndex: ...

  7. 解决scrollview不滚动

    scrollView不滚动的时候 试试这个,有时候药到病除:

  8. Java 中的四种引用及垃圾回收策略

    Java 中有四种引用:强引用.软引用.弱引用.虚引用: 其主要区别在于垃圾回收时是否进行回收: 1.强引用 使用最普遍的引用.如果一个对象具有强引用,那就 类似于必不可少的生活用品,垃圾回收器绝不会 ...

  9. inserted触发器,一张表插入数据时,同时向另外一张表插入数据

    有时候,一个服务器上有多个数据库,需要向其中一个数据库的表中插入数据时, 同时向另外一个数据的表里插入数据. 可以利用触发器和同义词(建立同义词的方法省略), 在一个数据库的表里插入数据时,同时向另外 ...

  10. Spring Boot 系列教程4-JDBC

    JDBC Java Data Base Connectivity,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.不管是Hibe ...