五周第五次课(1月12日)

8.10 shell特殊符号cut命令

8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下

8.10 shell特殊符号cut命令

1. 特殊符号

  • * 任意个任意字符

*代表零个或多个任意字符

  • ? 任意一个字符

?只代表一个任意的字符

  • # 注释字符

表示注释说明,即#后面的内容都会被忽略

  • \ 脱义字符

这个字符会将后面的特殊符号 (如*) 还原为普通字符

  • | 管道符

这个字符前面曾多次出现过,它的作用是将前面命令的输出作为后面命令的输人。这里提到的后面的命令,并不是所有的命令都可以的,一般针对文档操作的命令比较常用。例如cat、less、head, tail、grep、cut、sort、wc、uniq、tee、tr、split、sed、awk等,其中grep、sed和awk是正则表达式,必须掌握的工具

2.cut命令

cut命令用来截取某一个字段

其格式为cut  –d  '分隔字符'  [-cf] n

  • -d: 后面跟分隔字符,分隔字符要用单引号括起来。

  • -c: 后面接的是第几个字符。

  • -f: 后面接的是第几个区块

8.11 sort_wc_uniq命令

1. sort命令用做排序,其格式为sort  [ -t 分隔符]  [kn1,n2 ] [-nru],这里n1和n2指的是数字。

  • -t : 后面跟分隔字符,作用跟cut的-d选项一样。

  • -n:表示使用纯数字排序。字母和特殊符号都为0。

  • -r:表示反向排序。

  • -u:表示去重复

  • -kn1,n2: 表示由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序。

如果sort不加任何选项,则从首字符向后依次按ASCII码值进行比较, 最后将它们按升序输出

排序规则:特殊符号-数字-字母(包括*)

“-n”

-

2. wc命令用于统计文档的行数、字符数或词数。

常用选项

  • -l:统计行数

  • -m:统计字衣数

  • -w:统计词数

  • 不跟任何选项,直接跟文档,则会把行数、词数和字符数依次输出

3. uniq命令用来删除重复的行,该命令只有- c选项比较常用,它表示统计重复的行数,并把行数写在前面

去重要有条件的,先排除,才能去重

8.12 tee_tr_split命令

1. 命令tee 和>类似,重定向的同时还在屏幕显示,该命令常用于管道符 | 后。

有2层含义:先重定向,再把管道前面的结果打印在屏幕上。

清空a.txt,就用命令【>】可以了

选项“-a“就是追加

2. tr命令用于替换字符,常用来处理文档中出现的特殊符号。

该命令常用的选项有以下两个。

  • -d:表示删除某个字符,后面跟要删除的字符。

  • -s:表示删除重复的字符。

3. split命令用于切割文档

常用的选项

  • -b:表示依据大小来分割文档,单位为byte

  • -l:表示依据行数来分割文档

如果split不指定目标文件名,则会以xaa、xab…..这样的文件名来存取切割后的文件。当然,我们也可以指定目标文件名.

8.13 shell特殊符号下

  • $ 变量前缀,!$组合,正则里面表示行尾

  • ;多条命令写到一行,用分号分割.

  • ~ 用户家目录,后面正则表达式表示匹配符

  • & 放到命令后面,会把命令丢到后台

  • 重定向符号>; >>; 2>; 2>>; &>

  • [ ] 指定字符中的一个,[0-9],[a-zA-Z],[abc]

  • || 和 && ,用于命令之间

command1;command2 :使用;时,不管command1是否执行成功,都会执行command2。

command1 && command2 :使用&&时,只有command1执行成功后,command2才会执行,否则command2不执行。

command1 | | command2:使用 | | 时,command1执行成功后则command2不执行,否则执行command2,即command1和command2中总有一条命令会执行。