过滤器-选取排序--5知识分享

上传人:yuzo****123 文档编号:139660835 上传时间:2020-07-23 格式:PPT 页数:26 大小:266.50KB
返回 下载 相关 举报
过滤器-选取排序--5知识分享_第1页
第1页 / 共26页
过滤器-选取排序--5知识分享_第2页
第2页 / 共26页
过滤器-选取排序--5知识分享_第3页
第3页 / 共26页
过滤器-选取排序--5知识分享_第4页
第4页 / 共26页
过滤器-选取排序--5知识分享_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《过滤器-选取排序--5知识分享》由会员分享,可在线阅读,更多相关《过滤器-选取排序--5知识分享(26页珍藏版)》请在金锄头文库上搜索。

1、过滤器,薛卫,2,grep,使用正则表达式搜索标准输入或文本, 并把匹配的行打印到标准输出。 语法: Grep -cilLnrsvwx pattern file 例: Grep harley /etc/passwd P402例,3,Grep选项,c:只输出匹配行的计数。 i:不区分大小写(只适用于单字符)。 h:查询多文件时不显示文件名。 l:查询多文件时只输出包含匹配字符的文件名。 p405 n:显示匹配行及行号。 s:不显示不存在或无匹配文本的错误信息。 -w:把表达式做为一个单词搜索。 v:显示不包含匹配文本的所有行,4,look,功能说明:查询单字。 语法:look-df patter

2、n file 补充说明:look指令用于已排序英文单字的查询。您仅需给予它欲查询的字首字符串,它会显示所有开头字符串符合该条件的单字。 参数: -d只对比英文字母和数字,其余一慨忽略不予比对。 -f忽略字符大小写差别。 P409例,6,sort,sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 语法: Sort -dfnru -t +- -o outfile infile,7,-u选项:作用很简单,就是在输出行中去除重复行 -r选项:sort默认的排序方式是升序,如果想改成降序,需要-r选项。 -o选项:由于sort默认

3、是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename newfile。如果你想把排序结果输出到原文件中,重定向就不行了。-o选项可以把排序后文件放到原始文件。,8,-n选项:排序会遇到10比2小的情况。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面。如果想改变这种现状,就要使用-n选项告诉sort “要以数值来排序”!,9,rocrocketrocrocket programming$ cat number.txt 1 10 19 11 2 5 rocrocketrocrocket progra

4、mming$ sort number.txt 1 10 11 19 2 5 rocrocketrocrocket programming$ sort -n number.txt 1 2 5 10 11 19,10,-t选项,后面可以设定间隔符。 -k可以指定列数了。 rocrocketpro$ cat facebook.txt banana:30:5.5 apple:10:2.5 pear:90:2.3 orange:20:3.4,11,这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。 思考:那么以水果数量来排序,也就是以第二列来排序,如何利

5、用sort实现?,12,ror$ sort -n -k 2 -t : facebook.txt apple:10:2.5 orange:20:3.4 banana:30:5.5 pear:90:2.3,$ cat facebook.txtgoogle 110 5000baidu 100 5000guge 50 3000sohu 100 4500 让facebook.txt按照公司人数排序 $ sort n t -k 2 -u facebook.txtguge 50 3000baidu 100 5000 sohu 100 4500google 110 5000,13,$ sort n t -k

6、2 -k 3 -u facebook.txtguge 50 3000sohu 100 4500baidu 100 5000google 110 5000,14,让facebook.txt按照员工工资降序排序,如果员工人数相同的,则按照公司人数升序排序,sort -n t -k 3r -k 2 facebook.txt baidu 100 5000 google 110 5000 sohu 100 4500 guge 50 3000,15,16,strings,打印文件中的可打印字符串(print the strings of printable characters in files)。常用来

7、在二进制文件中查找字符串,与grep配合使用。strings命令输出的字符串是至少包含连续4个可打印字符的,这个可以通过参数来修改。 几个选项: -n number 仅输出长度大于number的字符串-t d/o/x 除了字符串之外,还额外输出字符串的位置(十进制/八进制/十六进制),17,tr,tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。 Tr abc ABC new 命令格式为:tr -c -d -s string1_to_translate_from string2_to_translate_to input-file这里:-c 用字

8、符串1中字符集的补集替换此字符集,要求字符集为ASCII。-d 删除字符串1中所有输入字符。-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。input-file是转换文件名。,18,指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。a-z a-z内的字符组成的字符串。A-Z A-Z内的字符组成的字符串。0-9 数字串。octal 一个三位的八进制数,对应有效的ASCII字符。O*n 表示字符O重复出现指定次数n。因此O*2匹配OO的字符串。,19,tr中特定控制字符的不同表达方式速记符含义八进制方式a Ctrl-G 铃声007b Ctrl-H

9、退格符010f Ctrl-L 走行换页014n Ctrl-J 新行012r Ctrl-M 回车015t Ctrl-I tab键011v Ctrl-X 030,20,例子,(1)去除oops.txt里面的重复的小写字符tr -s a-zresult.txt(2)删除空行tr -s 012 b.txt(5)删除指定字符 一个星期的日程表。任务是从其中删除所有数字,只保留日期。日期有大写,也有小写格式。因此需指定两个字符范围a-z和A-Z,命令tr -cs a-zA-Z 012 将文件每行所有不包含在a-z或A-Z(所有希腊字母)的字符串放在字符串1中并转换为一新行。-s选项表明压缩所有新行, -c

10、表明保留所有字母不动。原文件如下,后跟tr命令:tr -cs a-zA-Z 012 diary.txt,21,22,转换控制字符,tr的第一个功能就是转换控制字符,特别是从dos向UNIX下载文件时,忘记设置ftp关于回车换行转换的选项时更是如此。cat a filename 显示控制字符。 cat -a stat.txt box aa12M apple bbas23M Z 是tab键。每一行以Ctrl-M结尾,文件结尾Ctrl-Z,以下是改动方法。使用-s选项,查看ASCII表。的八进制代码是136,M是015,tab键是011,Z是032 ,下面将按步骤完成最终功能。,23,用tab键替换

11、 ,命令为136 011。将结果重定向到临时工作文件stat.tmptr -s 136 011 stat.tmp用新行替换每行末尾的M,并用n去除Z,输入要来自于临时工作文件stat.tmp。tr -s 015032 n stat.tmp要删除所有的tab键,代之以空格,使用命令tr -s 011 040 input.file(7)替换passwd文件中所有冒号,代之以tab键,可以增加可读性tr -s : 011 /etc/passwd 或 tr -s : t /etc/passwd,24,如果没有将文件保存为使用 UNIX 换行符来表示行结束这种格式,则需要将这样的文件转换成本机 UNIX

12、 格式,否则一些命令实用程序不会正确地处理这些文件。 Mac OS 的行尾以回车字符(r)结束,许多文本处理工具将这样的文件作为一行来处理。为了纠正这个问题,可以用下列技巧:Mac - UNIX:tr r n unixfileUNIX - Mac:tr n r macfile Microsoft DOS/Windows 约定,文本的每行以回车字符(r)并后跟换行符(n)结束。为了纠正这个问题,可以使用下列命令:DOS - UNIX:tr -d r unixfile,25,sed,Sed /address|pattern/s/search/replacement/g file file 用法:

13、1、sed s/harley/Harley/ file 2、sed s/harley/Harley/g file 3、address参数的写法 number,number sed 5,10s/harley/Harley/g file sed 5,$s/harley/Harley/g file 4、pattern参数的写法,26,sed /OK/s/harley/Harley/g file 5、删除 sed 2d example-删除example文件的第二行。 sed 2,$d example-删除example文件的第二行到末尾所有行。 sed $d example-删除example文件的最后一行。 sed /test/d example-删除example文件所有包含test的行。 5、长指令-(-e)选项允许在同一行里执行多条命令 Sed -e编辑指令1-e编辑指令2.file sed -e1,10d -es/yellow/black/g example,27,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号