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 命令将这些 ...
随机推荐
- javascript 如何正确使用getElementById,getElementsByName(), and getElementsByTagName()
WEB标准下可以通过getElementById(), getElementsByName(), and getElementsByTagName()访问DOCUMENT中的任一个标签. (1)get ...
- linux中iptables配置文件及命令详解详解
iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconfig/iptables. 1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放. 下 ...
- php 上传缩放图片
有时上传图片时因为图片太大了,不仅占用空间,消耗流量,而且影响浏(图片的尺寸大小不一).下面分享一种等比例不失真缩放图片的方法,这样,不管上传的图片尺有多大,都会自动压缩到我们设置尺寸值的范围之内.经 ...
- JavaScript高级程序设计:第三章
基本概念 一.语法: 1.区分大小写: 2.标识符:指变量.函数.属性的名字,或者函数的参数.标识符可以是按照下列格式规则组合起来的一个或多个字符: (1)第一个字符必须是一个字母.下划线(_).或者 ...
- 购物车(Shopping cart) —— B2C网站核心产品设计 (二)
购物车是做什么的? 我们先来看一下现实超市中的购物车,一个带四个轱辘的铁筐子,客人推来推去,看到什么东西喜欢,就扔进去,觉得东西差不多了,就推到收银台. 那B2C网站中的购物车又是一个什么东西呢? 从 ...
- JS调用OC方法
- (void)myMethod:(CDVInvokedUrlCommand*)command { NSString* echo = [command.arguments objectAtIndex: ...
- 解决scrollview不滚动
scrollView不滚动的时候 试试这个,有时候药到病除:
- Java 中的四种引用及垃圾回收策略
Java 中有四种引用:强引用.软引用.弱引用.虚引用: 其主要区别在于垃圾回收时是否进行回收: 1.强引用 使用最普遍的引用.如果一个对象具有强引用,那就 类似于必不可少的生活用品,垃圾回收器绝不会 ...
- inserted触发器,一张表插入数据时,同时向另外一张表插入数据
有时候,一个服务器上有多个数据库,需要向其中一个数据库的表中插入数据时, 同时向另外一个数据的表里插入数据. 可以利用触发器和同义词(建立同义词的方法省略), 在一个数据库的表里插入数据时,同时向另外 ...
- Spring Boot 系列教程4-JDBC
JDBC Java Data Base Connectivity,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.不管是Hibe ...