shell入门到经典 ch05.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
shell入门到经典 ch05

第5章 文件的合并、排序和分割 南京财经大学 江苏省电子商务重点实验室 伍之昂 王有权 提纲 sort命令 uniq命令 join命令 cut命令 paste命令 split命令 tr命令 tar命令 sort 命令(1) Linux的sort命令就是一种对文件排序的工具,sort命令的功能十分强大,是Shell脚本编程时常用的文件排序工具; sort命令与awk一样,将文件看作记录和域进行处理,默认的域分隔符是空格符,sort命令的格式为: sort [选项] [输入文件] 选项 意义 -c 测试文件是否已经被排序 -k 指定排序的域 -m 合并两个已排序的文件 -n 根据数字大小进行排序 -o [输出文件] 将输出写到指定的文件,相当于将输出重定向到指定文件 -r 将排序结果逆向 -t 改变域分隔符 -u 去除结果中的重复行 sort 命令(2) -t选项可用于设置分隔符 例5-1 -k选项用于指定排序的域,sort默认按第1域进行排序 例5-2 -n选项用于指定按数值大小进行排序 例5-3 -r选项用于将排序结果逆向显示 例5-4 -u选项用于去除排序结果中的重复行 例5-5 sort 命令(3) -o选项用于指定结果文件的名字 例5-6 -c选项用于测试文件是否已经排好序 例5-7 -m选项用于将两个排好序的文件合并成一个排好序的文件,在文件合并前,它们必须已经排好序,-m选项对未排序的文件合并是没有任何意义 例5-8 uniq 命令(1) uniq命令用于去除文本文件中的重复行,这类似于sort命令的-u选项 sort -u命令时,所有重复记录都被去掉 uniq命令去除的重复行必须是连续重复出现的行,中间不能夹杂任何其他文本行 选项 意义 -c 打印每行在文本中重复出现的次数 -d 只显示有重复的记录,每个重复记录只出现一次 -u 只显示没有重复的记录 uniq 命令(2) uniq命令的-c选项打印每行在文本中重复出现的次数,常用于计数功能,-c选项是uniq最有用的选项 例5-11 count_word.sh脚本 uniq命令的-d和-u选项正好相反,-d选项用于显示有重复的记录,而-u选项显示没有重复的记录 join 命令(1) join命令用于实现两个文件中记录的连接操作,连接操作将两个文件中具有相同域的记录选择出来,再将这些记录所有的域放到一行(包含来自两个文件的所有域) join [选项] 文件1 文件2 例5-13 选项 意义 -a1或-a2 除了显示以共同域进行连接的结果外,-a1表示还显示第1个文件中没有共同域的记录,-a2则表示显示第2个文件中没有共同域的记录 -i 比较域内容时,忽略大小写差异 -o 设置结果显示的格式 -t 改变域分隔符 -v1或-v2 跟-a选项类似,但是,不显示以共同域进行连接的结果 -1和-2 -1用于设置文件1用于连接的域,-2用于设置文件2用于连接的域 join 命令(2) 当两个文件进行连接时,文件1中的记录可能在文件2中找不到共同域,反过来,文件2中也可能存在这样的记录,join命令的结果默认是不显示这些未进行连接的记录的 -a和-v选项就是用于显示这些未进行连接的记录,-a1和-v1指显示文件1中的未连接记录,而-a2和-v2指显示文件2中的未连接记录 -a和-v选项的区别在于:-a选项显示以共同域进行连接的结果,而-v选项则不显示这些记录 例5-14 例5-15 join 命令(3) join命令默认显示连接记录在两个文件中的所有域,而且是按顺序来显示的。-o选项用于改变结果显示的格式 例5-16 join命令默认比较文件1和文件2的第1域,如果我们需要通过其他域进行连接,就需要使用-1和-2选项,-1用于设置文件1用于连接的域,-2用于设置文件2用于连接的域 文件1和文件2必须已经根据所要进行连接的域排序 例5-17 cut 命令 cut命令用于从标准输入或文本文件中按域或行提取文本 cut [选项] 文件 例5-19 例5-20 选项 意义 -c 指定提取的字符数,或字符范围 -f 指定提取的域数,或域范围 -d 改变域分隔符 paste 命令(1) paste命令用于将文本文件或标准输出中的内容粘贴到新的文件,它可以将来自于不同文件的数据粘贴到一起,形成新的文件 paste [选项] 文件1 文件2 -d选项 例5-22 -s选项 例5-23 选项 意义 -d 默认域分隔符是空格或Tab键,设置新的域分隔符 -s 将每个文件粘贴成一行 - 从标准输入中读取数据 paste 命令(2) paste命令的“-”选项比较特殊,当paste命令从标准输入中读取数据时,“-”选项才起作用 例5-24:paste命令-选项的用法 [root@jsel

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档