26期20180702 shell特殊符号 cut sort_wc_uniq trr_tr_spli

 7月2日任务
8.10 shell特殊符号cut命令
8.11 sort_wc_uniq命令
8.12 tee_tr_split命令
8.13 shell特殊符号下
相关测验题目: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 



image.png

* 通配符

?.txt  1.txt 2.txt

#表示后面的不生效 

\脱义符号,作用和之前说过的单引号差不多,都是不解析,直接输出。

echo \$a\$b

$在shell中表示去调用一个变量

image.png



image.png


| head -n 将管道符前面的cat的文件的前n行取出来

image.png


cut

 -d "分隔符"

 -f 选取第几段

-c 选取第几个字符


cut -d ":" -f 1-3 

以:为分隔符,选取1-3行

image.png

image.png

image.png


sort 排序

image.png

可以看一下特殊符号,数字,字母的排序。

image.png

特殊符号排最前面,其次是数字,最后是字母,*会认为是0


-n参数的时候,会以数字大小去排序,但是字母和特殊符号被认为是0所以会在数字前面


image.png


-r反序排序


-t分隔符  -kn1/-kn1,n2


wc -l wc是word count 数单词的 -l 是行的意思 所以 wc -l 是 统计多少行

image.png


wc -m 统计字符数,因为每一行会有一个换行符,所以每行会多一个字符

image.png

-w 统计词 word

image.png 以空格或者空字符来区分的



uniq 去重,需要先排序把相同的放在一起,才使用去重。因为不排在一起无法直接uniq去重。看下图

image.png

所以就需要先排序,再去重。先用sort 将所有的重新排序,再用管道符uniq去重。如下图。

image.png

uniq -c 统计重复次数,如下图

image.png

sort和uniq一般连着用比较多


sort uniq wc等都不会对文件本身的内容做出更改



tee和重定向>类似,同时会把结果打印到屏幕上 如果后面加上文件名会将前面的结果写入到后面的文件中

image.png

image.png


如果想清空一个文件的内容 直接 >文件名

image.png

image.png

tee -a 就是追加 类似 >>

image.png  


tr替换字符的,是针对字符进行操作的。

 | tr "xx" "mmm" 将管道符前面的字符中的xx换成mmm。 如果想把所有的小写换成大写,可以写成 tr '[a-z]' '[A-Z]'  是一一对应的

image.png


image.png



split 切割文件  -b 跟大小 默认单位是字节  -l 跟行数 b就是以大小为单位切割 l就是以行为大小切割

例如log文件日积月累,越来越大就需要给切割成若个小的文件

可以从下图看到,切割成了很多个文件


split -b 100M file 是按照100M为大小作为分割大文件

split -l  1000 file   是按照行为分割,每1000行来分割

 


image.png

du -sh * 查看每一个都是4k的原因是以块显示

image.png

du -sb * 以字节显示,可以看到都是以字节显示的了,按照上面切割时候的大小 1000bite

image.png

如果不指定切割的文件名,最后出来的文件都是以x开头后面从a开始接,接到z之后再从b开始,如果不够用就往后加长度。


image.png


不仅仅是可以用-b指定大小,还可以同时指定名字的前缀。

image.png


然后是-l 来以行为单位切割文件 可以看到6081行的文件切割成了7个文件 6个1000 1一个81


image.png




















shell特殊符号

image.png

多条命令的情况

image.png

image.png

image.png


|| 或 表示如果第一个命令不成功才执行第二个命令,当然不局限于两个命令之间,可以一直往下进行

image.png

因为第一个执行成功了,所以第二个没有执行

image.png

&& 与,表示但凡遇到一个不成立的,后面都不再执行了。

image.png

image.png


生活中的场景,shell脚本,想创建一个目录,首先判断这个目录是否存在。

[ -d jiabin] || mkdir jiabin

jiabin是否是一个目录,前面执行失败,也就是没有这个目录的时候,后面才会进行mkdir的操作


image.png


猜你喜欢

转载自blog.51cto.com/13691454/2135244