shell 特殊符号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 特殊符号相关的知识,希望对你有一定的参考价值。
1、特殊符号
相关例子,详见下图,
2、关于管道符
(1)、cut 分割
-d 分隔符 -f 指定段号 -c 指定第几个字符
举例子,见下图,
上图例子中,| 输出结果,cut 分割出后面想要的结果。一般情况下,-c 和 -d 、-f 不同时使用。
(2)、sort 排序
-n 以数字排序 -r 反序 -t 分隔符 -kn1/-kn1,n2
举例子,见下图,
可以注意到,红色框框里面的内容是按字母顺序排列的,这个就是 sort 作用的结果。sort 后面不加任何选项,则从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
关于ASCII码,百度百科的解释如下:
接着往下操作,见下图,
回车之后,进入下图,
随机输入上图红色框框的内容,保存后退出。使用 sort 查看文件 1.txt ,见下图,
可以看到上图的排列顺序是,先特殊符号,再数字,然后再字母,包括 * 号。以上就是 ASCII 码的排列顺序。
-n 选项是以数字排序,前面的特殊符号和字母,都默认为 0 。见下图,
-r 选项是反序的意思,见下图,
-t 后面跟分隔符,-kn1/-kn1,n2 ,这些用的比较少,了解即可。
(3)、wc
-l 统计行数 -m 统计字符数 -w 统计词
举个例子,见下图,
进入 2.txt 文件,编辑输入下图红色框框的内容,
保存后退出。接着统计 2.txt 的字符数,见下图,
可以看到,2.txt 的字符数是 8 ,为什么会是 8 呢?cat -A 之前说过,它可以查看 2.txt 文件里的所有内容,包括隐藏的。然后,就看到了每一行末尾的 $ ,表示的是换行符。所以,wc -m 2.txt 的结果是 8 。
接着对 -w 进行操作,见下图,
2.txt 里的内容有两行,所以显示的结果是 2 。再次进入 2.txt 编辑文件内容,见下图,
补充完上图内容后,保存并退出。再次查看统计词,见下图,
-w 是以空白字符作为分隔符的,所以结果显示为 3 。
(4)、uniq 去重复,-c 统计行数
输入命令 vi 2.txt ,回车,见下图,
增加上图红色框框的内容,保存并退出。接着往下操作,
发现 uniq 命令对 2.txt 的内容没有任何影响,再次进入文件 2.txt ,编辑内容如下,
将最后的1和2互换位置,然后保存退出。接着使用命令 uniq 2.txt 查看,见下图,
这时候,就会看到去重复了。这是有条件的去重复,必须两个同样的字符在前后位置,才能去重复。
一般情况下,uniq 和 sort 是一起使用的,见下图,
先排序,后去重复。这样子使用命令之后,就看不到重复的数值了。还可以使用 -c 选项来统计重复的次数,每一排前面的数字就是重复的次数。
(5)、tee
和 > 类似,重定向的同时还在屏幕显示,|tee -a 有追加作用
举例子,见下图,
从上图可以看出 |tee 的一个作用就是重定向,还有一个作用是把文件内容打印到屏幕上。
-a 选项有追加的作用,见下图,
再追加一次,再查看文件,见下图,
(6)、tr 命令
tr 替换字符,tr ‘a‘ ‘b‘,大小写替换 tr ‘[a-z]‘ ‘[A-Z]‘
具体操作,详见下图,
(7)、split 命令
split 切割,-b 大小(默认单位字节),-l 行数
首先来创建一个大文件,输入命令 find /etc/ -type f -name "conf" ,回车,见下图,
该命令结果内容太多,不一一截图,接着操作如下,
后面这些 4.0 KB的文件也很多,不一一截图了。接着用命令 du -sh ,回车,见下图,
内容也非常多,不一一截图。1000 单位是 b 。因为前面切割的单位是 1000 ,接着往 100 切割,见下图,
切割成 100 之后,文件就更多了,图片内容截图不全,可以注意到这些小文件的命名都是有按字母排序的。文件太多,全部删除掉,接着往下操作,
以上是关于shell 特殊符号的主要内容,如果未能解决你的问题,请参考以下文章