linux shell——md5sum,sha1sum,sort,uniq (转)
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 (转)的更多相关文章
- 转-Shell笔记——命令:Sort,uniq,join,cut,paste,split
转自:http://blog.csdn.net/wklken/article/details/6562098 Sort,uniq,join,cut,paste,split 命令—— Sort Sort ...
- linux命令使用 cut/sort/uniq
我记得之前去XX网面试的那个面试题是这样的:有个apache.log 文件文本内容如下:======================[niewj@centSvr ~]$ cat apache.log ...
- linux命令-awk,sort,uniq
学习地址:http://man.linuxde.net/awk#awk的工作原理 awk 选项参数说明: -F fs or --field-separator fs 指定输入文件折分隔符,fs是一个字 ...
- 【转帖】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 ...
- linux sort,uniq,cut,wc命令详解
linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...
- linux sort,uniq,cut,wc,tr命令详解
sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...
- centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课
centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课 rsync可以增量同步,scp不行 ...
- (转)linux sort,uniq,cut,wc命令详解
linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...
随机推荐
- 答辩系统bug修改记录
1.验证码不显示 参考Could not initialize class sun.awt.X11GraphicsEnvironment解决 在catalina.sh里加上一句 “CATALINA_O ...
- VS2010 制作安装包,无法生成卸载快捷方式
目前我出现了这个错误,原因是项目目录中包含了中文字符导致的,我改变了文件夹之后,就没问题了
- GITLAB管理自己的私有源码
github是很好的公开源码管理器,但是,私有项目,需要付费才行,比较郁闷,特别是个人工作者 gitlab(英文我不咋滴),上貌似允许1000个私有项目,其他的权限,还没怎么看,估计简单的项目 ...
- leetcode136 利用异或运算找不同的元素
Given an array of integers, every element appears twice except for one. Find that single one. Note: ...
- VS中的快捷键快速格式化代码,使好看,整齐
在VC2005中,快捷键是Ctrl + K, Ctrl + F, 这是一个组合键,即先按Ctrl + K, 这时候编辑器会等待下一个按键动作,此时再按Ctrl + F, 即可以格式化代码了,当然,也可 ...
- 样式的操作-访问外部定义的css样式
JS对css的控制力非常强,甚至可以控制外部定义的css样式 ———————————————————————— <style> .myclass{ ...
- java IO类图
- 构造DataTable
手动构造一个DataTable: DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(string)); dt. ...
- CentOS + EPEL YUM源地址
[bizosv] name=bizsov-centos-$releasever - centos baseurl=http://yikat:yikat@download.bizsov.com/ gpg ...
- PHP:class static
简介 static关键词的一种常见用途是,当类的某个变量$var被定义为static时,那么$var就是类的变量. 这意味着:1,该类的任意一个实例对其进行修改,在该类的其它实例中访问到的是修改后的变 ...