过滤器-选取排序

上传人:tia****nde 文档编号:66990486 上传时间:2019-01-06 格式:PPT 页数:26 大小:255.51KB
返回 下载 相关 举报
过滤器-选取排序_第1页
第1页 / 共26页
过滤器-选取排序_第2页
第2页 / 共26页
过滤器-选取排序_第3页
第3页 / 共26页
过滤器-选取排序_第4页
第4页 / 共26页
过滤器-选取排序_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《过滤器-选取排序》由会员分享,可在线阅读,更多相关《过滤器-选取排序(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 patt

2、ern file 补充说明:look指令用于已排序英文单字的查询。您仅需给予它欲查询的字首字符串,它会显示所有开头字符串符合该条件的单字。 参 数: -d 只对比英文字母和数字,其余一慨忽略不予比对。 -f 忽略字符大小写差别。 P409例,5,Look与grep区别,1、look要求有序输入 2、只能从文件中读文件,不能从标准输入读数据 3、look只能在行的开头搜索指定模式,6,sort,sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 语法: Sort -dfnru -t +- -o outfile infile,

3、7,-u选项:作用很简单,就是在输出行中去除重复行 -r选项:sort默认的排序方式是升序,如果想改成降序,需要-r选项。 -o选项:由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename newfile。如果你想把排序结果输出到原文件中,重定向就不行了。-o选项可以把排序后文件放到原始文件。,8,-n选项:排序会遇到10比2小的情况。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面。如果想改变这种现状,就要使用-n选项告诉sort “要以数值来排序”!,9,rocrocketroc

4、rocket programming$ cat number.txt 1 10 19 11 2 5 rocrocketrocrocket programming$ 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.txt google 110 5000 baidu 100 5000 guge 50 3000 sohu 100 4500 让facebook.txt按照公司人数排序 $ sort n t -k 2 -u facebo

6、ok.txt guge 50 3000 baidu 100 5000 sohu 100 4500 google 110 5000,13,$ sort n t -k 2 -k 3 -u facebook.txt guge 50 3000 sohu 100 4500 baidu 100 5000 google 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 3

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

8、 命令格式为: tr -c -d -s “string1_to_translate_from“ “string2_to_translate_to“ input-file 这里: -c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。 -d 删除字符串1中所有输入字符。 -s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。 input-file是转换文件名。,18,指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。 a-z a-z内的字符组成的字符串。 A-Z A-Z内的字符组成的字符串。 0-9 数字串。 octal 一个三位的八进制

9、数,对应有效的ASCII字符。 O*n 表示字符O重复出现指定次数n。因此O*2匹配OO的字符串。,19,tr中特定控制字符的不同表达方式 速记符含义八进制方式 a Ctrl-G 铃声007 b Ctrl-H 退格符010 f Ctrl-L 走行换页014 n Ctrl-J 新行012 r Ctrl-M 回车015 t Ctrl-I tab键011 v Ctrl-X 030,20,例子,(1)去除oops.txt里面的重复的小写字符 tr -s “a-z“result.txt (2)删除空行 tr -s “012“ b.txt (5)删除指定字符 一个星期的日程表。任务是从其中删除所有数字,只

10、保留日期。日期有大写,也有小写格式。因此需指定两个字符范围a-z和A-Z,命令tr -cs “a-zA-Z“ “012“ 将文件每行所有不包含在a-z或A-Z(所有希腊字母)的字符串放在字符串1中并转换为一新行。-s选项表明压缩所有新行, -c表明保留所有字母不动。原文件如下,后跟tr命令: tr -cs “a-zA-Z“ “012“ diary.txt,21,22,转换控制字符,tr的第一个功能就是转换控制字符,特别是从dos向UNIX下载文件时,忘记设置ftp关于回车换行转换的选项时更是如此。cat a filename 显示控制字符。 cat -a stat.txt box aa12M

11、apple bbas23M Z 是tab键。每一行以Ctrl-M结尾,文件结尾Ctrl-Z,以下是改动方法。 使用-s选项,查看ASCII表。的八进制代码是136,M是015,tab键是011,Z是032 ,下面将按步骤完成最终功能。,23,用tab键替换 ,命令为“136“ “011“。将结果重定向到临时工作文件stat.tmp tr -s “136“ “011“ stat.tmp 用新行替换每行末尾的M,并用n去除Z,输入要来自于临时工作文件stat.tmp。 tr -s “015032“ “n“ stat.tmp 要删除所有的tab键,代之以空格,使用命令 tr -s “011“ “04

12、0“ input.file (7)替换passwd文件中所有冒号,代之以tab键,可以增加可读性 tr -s “:“ “011“ /etc/passwd 或 tr -s “:“ “t“ /etc/passwd,24,如果没有将文件保存为使用 UNIX 换行符来表示行结束这种格式,则需要将这样的文件转换成本机 UNIX 格式,否则一些命令实用程序不会正确地处理这些文件。 Mac OS 的行尾以回车字符(r)结束,许多文本处理工具将这样的文件作为一行来处理。为了纠正这个问题,可以用下列技巧: Mac - UNIX:tr “r“ “n“ unixfile UNIX - Mac:tr “n“ “r“

13、macfile Microsoft DOS/Windows 约定,文本的每行以回车字符(r)并后跟换行符(n)结束。为了纠正这个问题,可以使用下列命令: DOS - UNIX:tr -d “r“ unixfile,25,sed,Sed /address|pattern/s/search/replacement/g file file 用法: 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/ha

14、rley/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号