linux学习第二十五篇:cut,sort,wc,uniq,tee,tr,split命令,shell特殊符号
- * 任意个任意字符
- ? 任意一个字符
- # 注释字符
- 脱义字符
- | 管道符
- find /etc/ -type f -name “*conf” -exec cat {} >> 1.txt ; //在/etc下查找文件名含有conf的文件并cat查看,后追加到文件1.txt中
cut命令
命令 : cut 用来截取某一个字段 语法: cut -d ‘分隔字符’ [-cf] n 这里的n是数字 -d :后面跟分隔字符,分隔字符要用单引号括起来 -c :后面接的是第几个字符 -f :后面接的是第几个区块
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -d ':' -f 1
root
bin
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -d ':' -f 1,2
root:x
bin:x
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -d ':' -f 1-3
root:x:0
bin:x:1
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -d ':' -f 1-4
root:x:0:0
bin:x:1:1
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -c1-4
root
bin:
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -c1
r
b
[root@xie-02 ~]# cat /etc/passwd | head -2 | cut -c2
o
i
sort_wc_uniq命令
命令 : sort sort 用做排序 语法: sort [-t 分隔符] [-kn1,n2] [-nru] 这里的n1 < n2 -t 分隔符 :作用跟cut的-d一个意思 -n :使用纯数字排序 -r :反向排序 -u :去重复 -kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序 PS:如果sort不加任何选项,则从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。不会更改文件内容
命令 : wc 用于统计文档的行数、字符数、词数,常用的选项为: -l :统计行数 -w :统计词数 -m :统计字符数 PS:wc 不跟任何选项,直接跟文档,则会把行数、词数、字符数依次输出
[root@xie-02 ~]# cat -A 1.txt //-A包括隐藏的都会显示
123$
asd$
zxc$
345$
[root@xie-02 ~]# wc -l 1.txt //统计行数
4 1.txt
[root@xie-02 ~]# wc -w 1.txt //统计词数
4 1.txt
[root@xie-02 ~]# wc -m 1.txt //统计字符数
16 1.txt
[root@xie-02 ~]# wc 1.txt //把行数、词数、字符数依次输出
4 4 16 1.txt
命令 : uniq 去重复的行(去掉的是相邻的重复的行,如果不是相邻的即使重复也不会去重,所以需要先排序再去重) -c :统计重复的行数,并把行数写在前面 PS:不会更改文件内容
[root@xie-02 ~]# cat 1.txt
123
asd
123
zxc
345
1
222
1
2
2
[root@xie-02 ~]# uniq 1.txt //去掉的是相邻的重复的行
123
asd
123
zxc
345
1
222
1
2
[root@xie-02 ~]# sort 1.txt | uniq -c //先排序再去重
2 1
2 123
2 2
1 222
1 345
1 asd
1 zxc
tee_tr_split命令
命令 : tee 后跟文件名,类似与重定向 “>”, 但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。 -a:加上参数a之后就相当于重定向的追加>>
[root@xie-02 ~]# echo "213asdf" | tee 1.txt
213asdf
[root@xie-02 ~]# cat 1.txt
213asdf
命令 : tr 替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号。常用的选项有两个: -d :删除某个字符,-d 后面跟要删除的字符 -s :把重复的字符去掉 最常用的就是把小写变大写: tr ‘[a-z]’ ‘[A-Z]’
[root@xie-02 ~]# echo "linux" |tee 1.txt
linux
[root@xie-02 ~]# cat 1.txt
linux
[root@xie-02 ~]# echo "linux" |tr '[li]' '[LI]'
LInux
[root@xie-02 ~]# echo "linux" |tr '[a-z]' '[A-Z]'
LINUX
命令 : split 切割文档,常用选项: -b :依据大小来分割文档,直接写数字,如100则默认是字节 -l :依据行数来分割文档 PS:如果split不指定目标文件名,则会以xaa xab… 这样的文件名来存取切割后的文件。当然我们也可以指定目标文件名
[root@xie-02 ~]# du -sh 1.txt
252K 1.txt
[root@xie-02 ~]# split -b 100k 1.txt //以100K大小切割
[root@xie-02 ~]# ls
1.txt anaconda-ks.cfg xaa xab xac
[root@xie-02 ~]# du -sh *
252K 1.txt
4.0K anaconda-ks.cfg
100K xaa
100K xab
52K xac
[root@xie-02 ~]# split -b 100k 1.txt 123 //以100K大小切割并指定目标文件名
[root@xie-02 ~]# du -sh *
100K 123aa
100K 123ab
52K 123ac
252K 1.txt
4.0K anaconda-ks.cfg
[root@xie-02 ~]# split -l 1000 1.txt //依据行数切割
[root@xie-02 ~]# wc -l *
6481 1.txt
51 anaconda-ks.cfg
1000 xaa
1000 xab
1000 xac
1000 xad
1000 xae
1000 xaf
481 xag
13013 总用量
shell特殊符号
- $ 变量前缀,$组合,正则里面表示行尾
- ;多条命令写到一行,用分号分割
- ~ 用户家目录,后面正则表达式表示匹配符
- & 放到命令后面,会把命令丢到后台
- >:正确重定向 >>:追加正确重定向 2>:错误重定向 2>>:追加错误重定向 &>:正确错误重定向
- [ ] 指定字符中的一个,[0-9],[a-zA-Z],[abc]
- || (或者)和 &&(与) ,用于命令之间 ||:前面的命令执行成功了后面的命令就不会执行,前面的执行不成功后面命令才会执行。 &&:只有前面的命令执行成功了后面的命令才会执行。
相关测验题目:http://ask.apelearn.com/question/5437 扩展 1. source exec 区别 http://alsww.blog.51cto.com/2001924/1113112 2. Linux特殊符号大全http://ask.apelearn.com/question/7720 3. sort并未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975
- 【Go 语言社区】 HTML5 前端--数据保存实例
- crontab设置导致的服务器进程异常问题 (r10笔记第4天)
- 一条SQL语句的执行计划变化探究(r10笔记第3天)
- tensorflow(一)windows 10 python3.6安装tensorflow1.4与基本概念解读
- 基于AgileEAS.NET SOA 中间件领域模型数据器快速打造自己的代码生成器
- Java基础-day07-代码题-自定义数据类型;ArrayList集合
- 一条报警信息的快速处理和分析(r9笔记第99天)
- 【Go 语言社区】解析Go语言编程中的struct结构
- centos+scala2.11.4+hadoop2.3+spark1.3.1环境搭建
- 【Go 语言社区】Golang 语言获取本机逻辑CPU数量的方法
- Data Guard搭建困境突围(一)(r10笔记第17天)
- Java基础-day07-知识点相关题-自定义数据类型;ArrayList
- windows10 tensorflow(二)原理实战之回归分析,深度学习框架(梯度下降法求解回归参数)
- 本人为巨杉数据库(开源NoSQL)写的C#驱动,支持Linq,全部开源,已提交github
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法