RedHat第八章_第1页
RedHat第八章_第2页
RedHat第八章_第3页
RedHat第八章_第4页
RedHat第八章_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,字符处理工具,.,文本编码及字数统计,计算机将文本转化成数字的过程,叫做文本的编码。为了适应不同语言的需求,开发了多种不同的编码技术,以字符集为代表,最早最流行的就是ASCII码。常规文件:将每个进程上下文之外需要保留的信息保存在文件中。文件长度:信息以单一字节序列从头到尾的保存,序列的字节数就是长度。,.,文本编码及字数统计,字节的概念一个字节中包括8bit,范围可表示0255之间的数。数据编码为了能够以一个字节的形式保存信息,信息必须以某种方式转化成0255之间的数值,将数据转化成此种格式就叫做数据编码。,.,文本编码及字数统计,文本编码ASCII码:1个字节,编码范围(英文的大小写字母、数字、常用标点及一些空白字符和信号控制符ctrl)ISO8859:1个字节,前128个字符与后128个字符配合使用。Unicode:4个字节,定长编码(也有2字节)。因此它与其他编码并不兼容,可以表示任何语言。应用在很多软件内部,如java。Utf8:变长编码,解决了传输问题。向下兼容了ASCII码,包含了UCS的所有功能,只是损失了ISO8859编码。编码国际化i18n。,.,文本编码及字数统计,LANG环境变量组成:LL(语言代码)+CC(国家代码)+enc(字符编码)如:en_US.UTF-8显示当前语言配置:echo$LANGlocale命令将有关当前语言环境或全部公共语言环境的信息写到标准输出上。公共语言环境是所有应用程序可以使用的语言环境。,.,文本编码及字数统计,ASCII文件在ISO8559中是有效的ASCII文件在UTF8中是有效的ISO8859字符集编码在UTF8中式无效的,必须进行编码转化使用UTF8编码,当且仅当所有字符为纯ASCII字符时,才能从一种编码转换成另一种编码,.,文本编码及字数统计,回顾cat、head、tail命令cat的命令行选项换行符的理解:Linux中采用n,Macintosh中采用r,Microsoft采用rn。wc命令功能:统计字符、文字和行的数量。命令行选项:-c、-l、-w,.,文本编码及字数统计,字符和字的概念字符包括可见和非可见。一个字就是一组打印字符。(空格和横向制表符分隔)示例分析统计字符隐藏字符统计文件中的行统计用户统计进程,.,搜索文本grep,grep命令可用来打印那些符合指定字符串或模式的行,可以用作过滤器使用,以便输出符合要求的结果。标准语法:fgrep/grep/egrep-i-n-v-r-wpatternfilename模式:如果模式中包含其他特殊字符,必须将模式放在引号内。关键选项:-e。,.,搜索文本grep,在文件中搜索字符递归搜索目录r的使用反转grep,-v的使用条件限制为符合整个词,-w的使用忽略大小写,-i的使用注意:gedit希望文件名以命令行参数给出而不是标准输入的方式提供。解决方法采用xargs可将标准输入作为附加参数应用到命令行中。,.,正则表达式介绍,正则表达式:采用模糊表示法定位或搜索到目标。grep、vi、find、sed命令都支持正则表达式。以name开始的行,表示方法:name车牌表示方法:4I135sVB82理解中括号、大括号的使用方法。,.,正则表达式介绍,grep命令对正则表达式的支持fgrep:不支持grep:使用原始的、基本的正则表达式egrep:使用扩展正则表达式,也支持基本正则表达式的表示方法,.,正则表达式介绍,解析正则表达式组成:文字字符、通配符、修饰符、锚点。通配符:字符“.”被当做占位符使用时,可与任何一个字符匹配。如x.s。括号表达式:中出现的字符,仅能匹配一个;表示不匹配括号中出现的字符。域表达式:范围的首尾字符,用短横线分隔,如0-9a-z。字符类:utf8不区分大小写。大写字符:upper:,.,正则表达式介绍,通用修饰符问号:表示“0”或“1”。ab?c星号:表示任意的,包括0。如ab*c加号:表示一个或一个以上。如b+大括号:表示出现的次数在m到n之间。如b2,4,若只有一个数表示只出现n次。示例:Aab?aal.*bra(0个或0个以上任意字符,需注意该符号的贪婪匹配),.,正则表达式介绍,锚点搜索表示一行的开始:name;$表示一行的结束:foo$,表示foo出现在行尾,并且紧跟着换行符的行;:使用反斜杠可使其含义编程“字首”或“字尾”,如。与此类似用法还有与$的配合使用,如foo$。,.,正则表达式介绍,正则表达式分组方法一:采用括号实现分组。如:foo与foobar的表示方法foo(bar)?方法二:采用|实现分组,上例表示为(foo|foobar)转义元字符采用反斜杠。如cat.,原本表示字符cat后包含任意一字符,若cat.表示cat.,反斜杠取消了其通配符的功能。,.,正则表达式介绍,正则表达式与文件名匹配两者的区别见书309页表8-16。示例分析$#取出程序命令行的参数电话号码的表示::digit:3(-|):digit:4:digit:digit:3(-|):digit:4:digit:,.,排序命令,Sort命令排序是按指定顺序排列记录的过程,可按字母序也可按数字大小排。如果有参数,将被理解成需要排序文件名;如果没有参数则按标准输入后进行排序。修改排列顺序:-n按数字排序;-r按递减排序指定排序键:默认情况下是以第一个字符进行排序。选用参数-kn指定多个排序键:多个-kn的配合使用指定字段分隔符,若为:。通过-t来指定,.,排序命令,uniq命令功能:用来识别、统计、删除排序过数据中的重复记录。若有命令行参数可以解释为需要操作的文件名,若没有参数按标准输入进行操作。选项的使用:-c或count,统计一个特定记录的出现次数,并将其显示在输出结果中。识别单一或重复数据:-d(至少出现一次的数据)和-u(只出现一次的数据),.,排序命令,示例分析ps命令:显示列表项选项:-e选项(指定列出每一个进程),-o选项(给出指定列),.,提取和组合文本,cut命令:可根据字节、字符或者指定的列从文本文件中提取文本。paste命令:将两个文本文件合并。,.,cut命令,cut命令可从一个文本文件或者文本流中提取文本列。cut命令将所有命令行参数理解为要执行操作的文件的文件名,如果没有参数,就对标准流进行操作。cut命令可指定需要剪切的字节、字符或字段。cut命令的强制命令行选项为表8-22。,.,cut命令,cutclist根据字符位置提取文本,其中list指定了一个字符在文本行中的位置,首字符位置为1。示例:grep:digit:/proc/interrupt|cutc1-15。也可以指定多个字符范围,如:grep:digit:/proc/interrupt|cutc1-15,34-。cut命令不能对数据进行重新排列,即使有重复说明部分。,.,cut命令,cutflist提取文本中字段,提取以分隔符分隔的文本。cutf也包含命令选项,思考该如何书写?参见表8-24。默认情况下分隔符为tab示例分析:cutsf3,4pcitable|headcutsf3pcitable|sort|uniqc|sort-rn,.,cut命令,cutblist按字节位置提取文本。本质上与-c命令选项是相似的。实际上,两者的区别在于处理utf8这类变长编码的文本。cutc视为单一编码,cutb可以识别变长编码。wc命令可列出一个字符串中含有的字节数,cutc按字符数统计文本。wc命令无法区分字节和字符。,.,paste命令,paste命令可用来将多个文件合并成一个文件输出。paste命令将一系列文件名视为命令可读取每个文件的第一行,将每个第一行合在一起,中间用tab分开,并在标准输出中用一行写出。paste的命令行选项。,.,提取和组合文本-示例分析,处理自由格式记录cutd:-f1,7/etc/passwdcutd:-f7,1output-delimiter=,/etc/passwd处理固定格式记录(具体的字符位置和列位置决定数据)cutc3-4fixed-data使用空格作为定义符(不能将多个空格重叠成一个空格)粘贴示例,.,追踪差异,diff命令是用来对比两个相似但不完全相同的文件,其生成的结果具体描述了两个文件之间的不同之处。(逐行对比)diff命令通常用来追踪文本文件,例如报告、网页、Shell脚本以及C语言的源码变化。语法:diff原文件目标文件该命令告诉用户,为了使两个文件一致,需要修改哪些行,如果是目录,diff表示将目录中的同名文件进行比较。,.,追踪差异,diff命令的输出格式上下文敏感:diffc或diffCN。修改的地方用“!”标记,添加的行用“+”标记,删除的行用“-”标记。一体的diff,用参数-u或-UN表示。将所有修改记录在一段中(即采用合并的方式来显示文件的不同),而不是重复修改行的内容。并排diff,用参数-y,并用-W80将输出结果控制在80列以内。报告是否相同,diffq,但并不说明具体差异。,.,追踪差异,diff是如何解释参数的?如果原文件是一个常规文件,目的文件是一个目录,在diff将在指定的目录中寻找与原文件同名文件。如果两个都是目录将会对比两个目录中的文件,但不会递归。特殊文件名-将会使diff命令从标准输入而不是从文件读取输入。文件自定义对比命令选项,表8-27。,.,追踪差异,示例分析忽略空行:-B。忽略符合正则表达式的行:-I。递归使用diff命令:-r。,.,文本转换命令,tr命令是一个万能的转换工具,可转换数据流中的字符。转换的意思是可以用一个字符取代另一个字符、删除字符或者压缩字符(将一组重复的字符合并成一个)。命令语法规则:表8-29。echo“abdefgh”|trfedxyz(若长度不相等时?),.,文本转换命令,将大写替换成小写?tra-zA-Z/etc/hosts考虑到字符集的问题,将替换改成字符类使用tr删除字符,命令选项为-d,此时只需要一个参数。使用tr命令压缩字符,命令选项为-s。如果s有两个选项,则在压缩的同时完成替换。-s与-d的联合使用:-ds表示先删除第一个字符集中的字符,再压缩第二个字符集中的内容。,.,拼写检查aspell,该命令是用来检查文本文件拼写的主要工具。语法:第一个参数可被理解为一个命令,告诉该命令应该做什么。进行交互式拼写检查:aspellc文件名。按下数字键进行替换。忽略用i,忽略当前文件中所有相同的单词I。替换单词r,大写R会自动记住替换的单词,并替换这个单词在其他地方的拼写错误。a表示加入词条,x表示退出,-list非交互式的拼写检查。,.,格式化文本和文件分割,文本编辑器不等于文本处理器。文本编辑器是:仅针对数据,所见即所得。文本处理器是:通常使用复杂的组件或者二进制格式定义字体、颜色及其其他细节。用户可以决定何时插入换行符。nano文本编辑器是唯一将换行设置作为默认设置的应用程序。,.,格式化文本和文件分割,gedit和gvim程序不在文本中插入换行符,而是在文本文件的末尾加上换行符。gedit以单词为界

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论