Linux shell特殊符与管道符有关的几个命令
前面多多少少也接触了不少特殊符号,今天就总一个总结。
* :任意个任意字符
? :任意一个字符
# :注释字符
\ :脱义字符 (按照原文内容输出 如:a=\$b,echo $a的值是"$b")
| : 管道符
管道符有关的几个命令:cut命令
作用是截取字符串
常用选项:
-d:指定分隔符
-f:指定段号
-c:指定第几个字符
注意:如果使用的"-c"选项,则不能组合上"-d"与"-f"的选项使用
示例
如查看passwd文件内容前两行内容并截取其中两段内容出来,如图1所示。
图1 cut命令用法
指定了":"字符为分隔符,那么passwd文件内容中可用分成七段,指定截取段时的某段与某段时只能安装顺序选择单段位号,如1,3这种选择是错误的但可以4,5。当然了,"-d"选项就一定得组合上"-f "选项使用,不如会报错,如图2所示。
图2 -d与-f选项必须一起组合使用
使用"-c"选项指定第几个字符截取,如截取passwd文件头部前两行内容的第四个字符,如图3所示。
图3 指定第几个字符截取
"-c"2选项只能单独使用,不能与其他选项组合使用。
管道符有关的几个命令:sort命令
sort命令的作用是文件内容排序
常用选项:
-n : 以数字来排序(如果内容中有字母,它都认为是零,所以字母会排在数字的前面,但他们的排序也是安装字母的顺序来排序的)
-r : 倒序排序
-t : 指定第几段字符排序(几乎没使用过,了解即可)
-k : 指定哪个区间进行排序,需要与-t选项组合使用
-o : 把排序显示出来的结果重定向到指定的文件中(该选项与">"重定向作用一致,完全可用使用重定向替代该选项)
示例:
1、不使用任何选项来对1.txt文件内容执行排序操作,如图4所示。
图4 sort默认排序方式
2、使用选项"-n"来对1.txt文件内容执行排序操作,如图5所示。
图5 sort 命令的-n选项与作用
3、使用-r选项来对1.txt文件内容执行排序操作,如图6所示。
图6 -r选项倒序作用
4、使用组合选项-t、-k来对3.txt文件内容执行排序操作,如图7所示。
图7 sort的组合选项-t、-k的作用
在3.txt文件内容以及图7中的命令-t选项使用可以看出,选择了"-"作为分隔符,把内容分隔成三段,第一段为年,第二段为月,第三段为日,而-k选择月这段来排序也就是以第二段来排序。
5、使用-o选项来对3.txt文件内容执行排序操作显示出的内容重定向到指定的4.txt文件中如图8所示。
图8 sort的-o选项与重定向的作用一致
管道符有关的几个命令:wc命令
wc命令作用是文件内容的行、字符、词的数量
常用选项:
-l : 统计行数(该选项会统计上换行)
-m : 统计字符数(该选项会统计上空格以及换行符"$")
-w : 统计词数(该选项会以空格或换行来识别计算词也就是来识别哪些字符是一个整体)
示例:
1、使用-l选项来统计1.txt文件有多少行,如图9所示。
图9 wc命令的 -l 选项会统计上换行
2、使用 -m 选项来统计4.txt文件内容有多少个字符,如图10所示。
图10 wc命令的-m 选项它会把换行符一起计算统计在字符数里
3、使用 -w 选项来统计3.txt文件内容有多少个词,如图11所示。
图11 wc -w 统计词是以换行或空格来计算词
在wc命令中使用最多的还是 -l 选项
管道符有关的几个命令:uniq命令
uniq命令的作用是去重,也就是把重复的内容过滤掉只显示一条内容出来
常用选项:
-c : 统计重复内容的次数
而去重的命令需要组合sort排序命令来使用,先排序把重复的内容相连在一起才可以去重,它是无法单独使用去重。
示例:
1、在1.txt文件内容中去重,如图12所示。
图11 uniq去重命令需要先使用sort命令排序把重复的内容相连在一起方可实现去重
2、使用-c选项统计1.txt文件内容重复次数,如图12所示。
图12 uniq -c 统计重复次数
管道符有关的几个命令:tee命令
tee命令的作用是与输出重定向有些相似,但它比重定向有一个好处就是把内容重定向到另一个文件后会把内容打印显示在我们终端屏幕中方便我们查看。
常用选项:
-a : 追加内容,与">>"的追加内容作用一致。
示例:
1,把1.txt文件进行排序再去重且记录次数再重定向至a.txt文件。如图13所示。
图13 tee重定向且打印显示内容在终端
tee命令不使用任何选项时,作用与">"重定向作用一致,都是覆盖掉文件原内容。
2、1,把1.txt文件进行排序再去重且记录次数再重定向追加至a.txt文件。如图14所示。
图15 重定向追加需要使用“-a”选项
管道符有关的几个命令:tr命令
tr命令的作用是替换字符,它只是针对字符来操作的。基本很少使用,常用选项就不说了。
示例:
1,把a.txt的字母"a"/"d"/"g"替换成大写字母且保存该内容,如图16所示。
图16 替换某个字符