linux常用处理命介绍.doc

上传人:公**** 文档编号:543056937 上传时间:2023-11-10 格式:DOC 页数:21 大小:183.50KB
返回 下载 相关 举报
linux常用处理命介绍.doc_第1页
第1页 / 共21页
linux常用处理命介绍.doc_第2页
第2页 / 共21页
linux常用处理命介绍.doc_第3页
第3页 / 共21页
linux常用处理命介绍.doc_第4页
第4页 / 共21页
linux常用处理命介绍.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《linux常用处理命介绍.doc》由会员分享,可在线阅读,更多相关《linux常用处理命介绍.doc(21页珍藏版)》请在金锄头文库上搜索。

1、 文档级别:普通文件linux常用文件处理命令介绍目 录linux常用文件处理命令介绍目 录- 0 -目 录- 1 -1 文件处理命令介绍- 2 -1.1 目的- 2 -1.2 内容- 2 -2 命令详细介绍- 2 -2.1 sort- 2 -2.2 uniq- 3 -2.3 cut- 4 -2.4 paste- 4 -2.5 sed- 5 -2.6 vi- 15 -修订纪录版本号修订时间内容摘要作者1.0.02011-03-01新建李平1 文件处理命令介绍1.1 目的在日常的开发中,如果对linux的文件处理的命令比较熟悉,可以大大的提高开发的效率,举一个简单的例子:之前我们有一个这样的需求

2、,我们从tt中导出了一个很大文件,我们想抽样调查看看中间的某些行的数据是怎么样,当时想了一下没有想到快速的方法。其实方法有很多,比如我们想了解1w行左右的数据是什么样的,我们可以用如下命令:head -10100|tail -50其实这个方法并不是唯一的方法,我们还可以用非常强大的sed命令,想知道sed命令如何完成这个需求的吗?不急!我们慢慢来。从上面的简单的需求我们就可以看出掌握linux的文件处理命令对我们日常的开发工作的效率的提升是很大的,所以希望通过这次探讨能帮助我们在日常的开发中提高效率。这也是我们这次探讨的目的所在。1.2 内容sort,uniq,cut,paste ,sed,v

3、i2 命令详细介绍2.1 sortsort命令将许多不同的域按不同的列顺序分类(简单的讲就是排序)。1、sort选项 sort命令的一般格式为: sort -cmu -o output_file other options +pos1 +pos2 input_files 下面简要介绍一下sort的参数: -c 测试文件是否已经分类。 -m 合并两个分类文件。 -u 删除所有复制行。 -o 存储s o r t结果的输出文件名。 其他选项有: -b 使用域进行分类时,忽略第一个空格。 -n 指定分类是域上的数字分类。 -t 域分隔符;用非空格或t a b键分隔域。 -r 对分类次序或比较求逆。 +

4、n n为域号。使用此域号开始分类。 n n为域号。在分类比较时忽略此域,一般与+ n一起使用。2、sort启动方式 缺省情况下, s o r t认为一个空格或一系列空格为分隔符。要加入其他方式分隔,使用- t选项。 sort执行时,先查看是否为域分隔设置了- t选项,如果设置了,则使用它来将记录分隔成域0、域1等等; 如果未设置,用空格代替。缺省时s o r t将整个行排序,指定域号的情况例外。 关于s o r t的一个重要事实是它参照第一个域作为域0,域1是第二个域,等等。3、文件是否已分类 sort -c data.txt4、sort分类求逆 如果要逆向s o r t结果,使用-r选项。

5、sort -t: -r video.txt5、按指定域分类 有时需要只按第2域(分类键1)分类。 sort -t: +1 video.txt6、数值域分类 用-n选项。必须用,不然得不到想要的结果。 sort -t: +3n video.txt7、唯一性分类 使用- u选项进行唯一性(不重复)分类以去除重复行。8、使用k的其他sort方法 sort还有另外一些方法指定分类键。可以指定k选项。 sort -t: -k4 video.txt 使用k做分类键排序: 可以指定分类键次序。先以第4域,再以第1域分类,命令为-k4 -k1 sort -t: -k4 -k1 video.txt9、指定sor

6、t序列 可以指定分类键顺序,也可以使用- n选项指定不使用哪个分类键进行查询。看下面的sort命令: sort +0 -2 +3 该命令意即开始以域0分类,忽略域2,然后再使用域3分类。2.2 uniquniq用来从一个文本文件中去除或禁止重复行。一般uniq假定文件已分类,并且结果正确。sort的唯一性选项去除所有重复行,而uniq命令并不这样做。重复行是什么?在uniq里意即持续不断重复出现的行,中间不夹杂任何其他文本. 命令一般格式: uniq -u d c -f inputfile outputfile 其选项含义: -u 只显示不重复行。 -d 只显示有重复数据行,每种重复行只显示其

7、中一行 -c 打印每一重复行出现次数。 -f n为数字,前n个域被忽略。 一些系统不识别- f选项,这时替代使用- n。 对特定域进行测试: 使用- n只测试一行一部分的唯一性。例如- 5意即测试第5域后各域唯一性。域从1开始记数。 如果忽略第1域,只测试第2域唯一性,使用- n 2,下述文件包含一组数据,其中第2域代表组代码。 uniq -f2 parts.txt或uniq -n2 parts.txt2.3 cutcut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。 cut一般格式为: cut options file1 file2 下面介绍其可用选项: -c l

8、ist 指定剪切字符数。 -f field 指定剪切域数。 -d 指定与空格和t a b键不同的域分隔符。 -c 用来指定剪切范围,如下所示: -c 1,5-7 剪切第1个字符,然后是第5到第7个字符。 -c1-50 剪切前5 0个字符。 -f 格式与- c相同。 -f 1,5 剪切第1域,第5域。 - f 1,10-12 剪切第1域,第1 0域到第1 2域。 剪切指定域: cut命令中剪切各域需用逗号分隔,如剪切域1和3,可以使用: cut -d: -f1,3 pers2.4 pastecut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴 起来形成相关文件。

9、粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。 paste将按行将不同文件行信息放在一行。缺省情况下,paste连接时,用空格或t a b键分隔新行中不同文本,除非指定- d选项,它将成为域分隔符。 paste格式为; paste -d -file1 file2 选项含义如下: -d 指定不同于空格或t a b键的域分隔符。例如用分隔域,使用- d 。 paste命令管道输入: paste命令还有一个很有用的选项( -)。意即对每一个( -),从标准输入中读一次数据。 使用空格作域分隔符,以一个4列格式显示目录列表。方法如下: ls |paste -d: - - - -2.

10、5 sedsed 实际是一个“编辑器”,但它与其它大多数编辑器不同。除了不面向屏幕之外,它还是非交互式的。sed 在一个文件(或文件集)中非交互式、并且不加询问地接收一系列的命令并执行它们。因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器。它可以用来将所有出现的 Mr. Smyth 修改为 Mr. Smith,或将 tiger cub 修改为 wolf cub。流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间。其参数可能和一次性使用一个简单的操作所需的参数一样有限,或者和一个具有成千上万行要进行编辑修改的脚本文件一样复杂。sed 是 Linu

11、x 和 UNIX 工具箱中最有用的工具之一,且使用的参数非常少。 2.5.1 sed 的工作方式 sed 实用工具按顺序逐行将文件读入到内存中。然后,它执行为该行指定的所有操作,并在完成请求的修改之后将该行放回到内存中,以将其转储至终端。完成了这一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件。如同前面所提到的,默认输出是将每一行的内容输出到屏幕上。在这里,开始涉及到两个重要的因素首先,输出可以被重定向到另一文件中,以保存变化;第二,源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改。不过,可以按需要将操作限制在指定的行上。 该实用工具的语法

12、为: sed options command filename2.5.2 替换命令 sed 实用工具以及其它任何类似的编辑器的最常用的命令之一是用一个值替换另一个值。用来实现这一目的的操作的命令部分语法是: s/old value/new value/非常简单地将 tiger 修改为 wolf: $ echo The tiger cubs will meet on Tuesday after school | sed s/tiger/wolf/The wolf cubs will meet on Tuesday after school$2.5.3 多次修改 如果需要对同一文件的行作多次修改,

13、可以有三种方法来实现它。第一种是使用 -e 选项,它通知程序使用了多条编辑命令。例如: $ echo The tiger cubs will meet on Tuesday after school | sed -e s/tiger/wolf/ -e s/after/before/The wolf cubs will meet on Tuesday before school这是实现它的非常复杂的方法,因此 -e 选项不常被大范围使用。更好的方法是用分号来分隔命令: $ echo The tiger cubs will meet on Tuesday after school | sed s/

14、tiger/wolf/; s/after/before/The wolf cubs will meet on Tuesday before school $注意分号必须是紧跟斜线之后的下一个字符。如果两者之间有一个空格,操作将不能成功完成,并返回一条错误消息。要注意的一个关键问题是,两个撇号 ( ) 之间的全部内容都被解释为 sed 命令。直到您输入了第二个撇号2.5.4 全局修改 让我们开始一次看似简单的编辑。假定在要修改的消息中出现了多次要修改的项目。默认方式下,结果可能和预期的有所不同,如下所示: $ echo The tiger cubs will meet this Tuesday at the same timeas the meeting last Tuesday | sed s/Tuesday/Thursday/The tiger cubs will meet this Thursday at the same t

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

当前位置:首页 > 生活休闲 > 社会民生

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