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 命令将这些 ...
随机推荐
- 《Windows驱动开发技术详解》之定时器
I/O定时器 I/O定时器是DDK提供的一种定时器.它每个1s钟系统会调用一次I/O定时器例程.I/O定时器例程运行在DISPATCH_LEVEL级别,因此在这个例程中不能使用分页内存,否则会引起页故 ...
- html 细线表格
可以<table width="800px" cellpadding="0" border="1px" style="bor ...
- 《初识PE》导入表
最近听别人讲的我晕晕乎乎的,于是上网上百度下,感觉这篇还不错. 链接:http://www.blogfshare.com/pe-export.html 一.导入表简介 在编程中常常用到"导 ...
- Entity Framework技巧系列之一 - Tip 1 - 5
提示1. 在Entity Framework中怎样排序关系(Relationships) 问题: 在Entity Framework论坛中常会看到关于排序相关联项目的问题. 例如,想象你要查询客户,并 ...
- Android实现Excel表格,且表格能左右、上下滑动
1.自定义实现一个水平滚动控件HorizontalScrollView import android.content.Context; import android.util.AttributeSet ...
- 17 个 tar 命令实用示例【转】
Tar(Tape ARchive,磁带归档的缩写,LCTT 译注:最初设计用于将文件打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的目录)是类 Unix 系统中使用最广泛的命令,用于归 ...
- git 提高下载速度
1. 直接下载分支,就不用下载不需要的源码了. git clone --depth 1 git://github.com/TI-OpenLink/wl18xx.git --branch ol_r8 ...
- oracle数据库的数据类型
一.字符类型 (1)固定长度的字符串 CHAR(字节长度是1~2000之间) CHAR(8)可以存储4个双字节的字符,8个单字节的字符,不足8字节剩余的部分用空格占据 (2)可变长度字符串 VARCH ...
- UVa11235 RMQ
input 1<=n,q<=100000 升序序列a1 a2 a3 ... an -100000<=ai<=100000 q行i j 1<=i,j<=n 输入结束标 ...
- frame、bounds表示大小和位置的属性以及center、position、anchorPosition
在iOS开发开发过程中经常会用到界面元素的frame.bounds表示大小和位置的属性以及center.position.anchorPosition等单纯表示位置的属性.这些属性究竟什么含义?彼此间 ...