您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > linux常用文件处理命令介绍
linux常用文件处理命令介绍文档级别:普通文件-1-目录LINUX常用文件处理命令介绍目录..............................................................................................................................-0-目录..............................................................................................................................................................................-1-1文件处理命令介绍....................................................................................................................................................-2-1.1目的....................................................................................................................................................................-2-1.2内容....................................................................................................................................................................-2-2命令详细介绍............................................................................................................................................................-2-2.1sort.......................................................................................................................................................................-2-2.2uniq......................................................................................................................................................................-3-2.3cut........................................................................................................................................................................-4-2.4paste....................................................................................................................................................................-4-2.5sed.......................................................................................................................................................................-5-2.6vi........................................................................................................................................................................-15-文档级别:普通文件-2-修订纪录版本号修订时间内容摘要作者1.0.02011-03-01新建李平1文件处理命令介绍1.1目的在日常的开发中,如果对linux的文件处理的命令比较熟悉,可以大大的提高开发的效率,举一个简单的例子:之前我们有一个这样的需求,我们从tt中导出了一个很大文件,我们想抽样调查看看中间的某些行的数据是怎么样,当时想了一下没有想到快速的方法。其实方法有很多,比如我们想了解1w行左右的数据是什么样的,我们可以用如下命令:head-10100|tail-50其实这个方法并不是唯一的方法,我们还可以用非常强大的sed命令,想知道sed命令如何完成这个需求的吗?不急!!我们慢慢来。从上面的简单的需求我们就可以看出掌握linux的文件处理命令对我们日常的开发工作的效率的提升是很大的,所以希望通过这次探讨能帮助我们在日常的开发中提高效率。这也是我们这次探讨的目的所在。1.2内容sort,uniq,cut,paste,sed,vi2命令详细介绍2.1sortsort命令将许多不同的域按不同的列顺序分类(简单的讲就是排序)。1、sort选项sort命令的一般格式为:sort-cmu-ooutput_file[otheroptions]+pos1+pos2input_files下面简要介绍一下sort的参数:-c测试文件是否已经分类。-m合并两个分类文件。-u删除所有复制行。-o存储sort结果的输出文件名。其他选项有:-b使用域进行分类时,忽略第一个空格。-n指定分类是域上的数字分类。文档级别:普通文件-3--t域分隔符;用非空格或tab键分隔域。-r对分类次序或比较求逆。+nn为域号。使用此域号开始分类。nn为域号。在分类比较时忽略此域,一般与+n一起使用。2、sort启动方式缺省情况下,sort认为一个空格或一系列空格为分隔符。要加入其他方式分隔,使用-t选项。sort执行时,先查看是否为域分隔设置了-t选项,如果设置了,则使用它来将记录分隔成域0、域1等等;如果未设置,用空格代替。缺省时sort将整个行排序,指定域号的情况例外。关于sort的一个重要事实是它参照第一个域作为域0,域1是第二个域,等等。3、文件是否已分类sort-cdata.txt4、sort分类求逆如果要逆向sort结果,使用-r选项。sort-t:-rvideo.txt5、按指定域分类有时需要只按第2域(分类键1)分类。sort-t:+1video.txt6、数值域分类用-n选项。必须用,不然得不到想要的结果。sort-t:+3nvideo.txt7、唯一性分类使用-u选项进行唯一性(不重复)分类以去除重复行。8、使用k的其他sort方法sort还有另外一些方法指定分类键。可以指定k选项。sort-t:-k4video.txt使用k做分类键排序:可以指定分类键次序。先以第4域,再以第1域分类,命令为-k4-k1sort-t:-k4-k1video.txt9、指定sort序列可以指定分类键顺序,也可以使用-n选项指定不使用哪个分类键进行查询。看下面的sort命令:sort+0-2+3该命令意即开始以域0分类,忽略域2,然后再使用域3分类。2.2uniquniq用来从一个文本文件中去除或禁止重复行。一般uniq假定文件已分类,并且结果正确。sort的唯一性选项去除所有重复行,而uniq命令并不这样做。重复行是什么?在uniq里意即持续不断重复出现的行,中间不夹杂任何其他文本.命令一般格式:uniq-udc-finputfileoutputfile其选项含义:-u只显示不重复行。文档级别:普通文件-4--d只显示有重复数据行,每种重复行只显示其中一行-c打印每一重复行出现次数。-fn为数字,前n个域被忽略。一些系统不识别-f选项,这时替代使用-n。对特定域进行测试:使用-n只测试一行一部分的唯一性。例如-5意即测试第5域后各域唯一性。域从1开始记数。如果忽略第1域,只测试第2域唯一性,使用-n2,下述文件包含一组数据,其中第2域代表组代码。uniq-f2parts.txt或uniq-n2parts.txt2.3cutcut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。cut一般格式为:cut[options]file1file2下面介绍其可用选项:-clist指定剪切字符数。-ffield指定剪切域数。-d指定与空格和tab键不同的域分隔符。-c用来指定剪切范围,如下所示:-c1,5-7剪切第1个字符,然后是第5到第7个字符。-c1-50剪切前50个字符。-f格式与-c相同。-f1,5剪切第1域,第5域。-f1,10-12剪切第1域,第10域到第12域。剪切指定域:cut命令中剪切各域需用逗号分隔,如剪切域1和3,可以使用:cut-d:-f1,3pers2.4pastecut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下,paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。paste格式为;paste-d-file1file2选项含义如下:-d指定不同于空格或tab键的域分隔符。例如用@分隔域,使用-d@。paste命令管道输入:paste命令还有一个很有用的选项(-)。意即对每一个(-),从标准输入中读一次数据。使用空格作域分隔符,以一个4列格式显示目录列表。方法如下:ls|paste-d:----文档级别:普通文件-5-2.5sedsed实际是一个“编辑器”,但它与其它大多数编辑器不同。除了不面向屏幕之外,它还是非交互式的。sed在一个文件(或文件集)中非交互式、并且不加询问地接收一系列的命令并执行它们。因而,它流经文本就如同水流经溪流一样,因而sed恰当地代表了流编辑器。它可以用来将所有出现的Mr.Smyth修改为Mr.Smith,或将tigercub修改为wolfcub。流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间。其参数可能和一次性使用一个简单的操作所需的参数一样有限,或者和一个具有成千上万行要进行编辑修改的脚本文件一样复杂。sed是Linux和UNIX工具箱中最有用的工具之一,且使用的参数非常少。2.5.1sed的工作方式sed实用工具按顺序逐行将文件读入到内存中。然后,它执行为该行指定的所有操作,并在完成请求的修改之后将该行放回到内存中,以将其转储至终端。完成了这一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件。如同前面所提到的,默认输出是将每一行的内容输出到屏幕上。在这里,开始涉及到两个重要的因素—首先,输出可以被重定向到另一文件中,以保存变化;第二,源文件(默认地)保持不被修改。sed默认读取整个文件并对其中的每一行进行修改。不过,可以按需要将操作限制
本文标题:linux常用文件处理命令介绍
链接地址:https://www.777doc.com/doc-4465105 .html