1、,目标,在本单元,您将学习: 使用过滤器,使用过滤器,过滤器是执行以下三个步骤的程序: 从标准输入文件获取输入 过滤输入 向标准输出文件发送输出,过滤器的一些示例有 cat、grep、wc、tr 和 cut。,grep 过滤器,grep 过滤器: 在文件中搜索特定样式的字符。 显示所有包含搜索到的样式的行。 在文件中搜索的样式被称为正则表达式。 grep 过滤器在不指定正则表达式的情况下无法使用。,grep 过滤器(续),grep 过滤器的语法是: grep options pattern filename,grep 过滤器(续),下表描述了可用来指定简单样式的字符的正则表达式。,grep 过
2、滤器(续),下表显示了可与 grep 过滤器一起使用的通配符字符。,grep 过滤器(续),grep 过滤器还有以下选项,可用于更改命令的输出: -n:打印与样式匹配的每行及其行号。行号打印在行首。 -c:打印与样式匹配的行数。 -v:打印不与正则表达式指定的样式匹配的所有行。,这些选项必须在正则表达式前指定。,wc 过滤器,wc 过滤器用于计算磁盘文件或标准输入文件中的行数、字数和字符数。,wc 过滤器的语法是: wc option filename,wc 过滤器(续),以下命令显示了 wc 过滤器的用法:$ wc test7 40 242 test,输出,wc 过滤器(续),下表描述了 w
3、c 过滤器的选项。,cut 过滤器,cut 过滤器在当需要从特定命令(如: ls 和 who )的输出抽取特定列时使用。,以下命令显示了 cut 过滤器的语法: cut options filename,cut 过滤器(续),以下命令显示了带有 -d 选项的 cut 过滤器的用法:$ cut -d : -f1 /etc/passwdrootbindaemonadmlpsyncshutdownhaltmailnewsuucp,输出,cut 过滤器(续),下表描述了 cut 过滤器的选项。,tr 过滤器,tr 过滤器可用来: 将一组字符翻译成另一组。 将重复出现的字符压缩成一个。,tr 过滤器(续
4、),已知有几个命令都可以多列输出。此外,列之间的间隔大于一个空格。,可以在这种情况下使用 cut 过滤器吗?,tr 过滤器(续),不,在这种情况下,不能使用 cut 过滤器,因为列分隔符只能是单个字符。,因此,需要将列之间的空格压缩成一个空格,然后使用 cut 过滤器抽取所需列。,-s 选项用于将重复出现的字符压缩成一个字符。 思考在外壳提示符处执行 who 命令后获得的以下输出:root tty1 Sep 28 17:02 steve pts/4 Sep 28 19:36 (172.17.55.167),tr 过滤器(续),如果想让上述输出中的列分隔符为一个空格,使用 tr -s,如以下命令
5、所示:$ who temporary $ tr -s “ “ temporary,tr 过滤器(续),获得的输出将为: root tty1 Sep 28 17:02 steve pts/4 Sep 28 19:36 172.17.55.167),sort 过滤器按升序排列标准输入中的每行。 下表描述了 sort 过滤器的选项。,sort 过滤器,在本单元中,您学习了: 过滤器即从标准输入文件获取输入、处理数据并在标准输出文件上显示输出的命令或用户程序。过滤器的各种示例有 grep、wc、tr 和 cut。 grep 过滤器在标准输入或文件中搜索特定样式的字符,并显示含有该样式的所有行。 wc 过滤器计算磁盘文件或标准输入中的行数、字数和字符数。 cut 过滤器在当需要从特定命令(或文件)的输出抽取特定列时使用。 tr 过滤器用于将一组字符翻译成另一组。 sort 过滤器按特定顺序排列标准输入或文件的每行。,小结,