Linux文本处理命令

Linux文本处理命令【Linux文本处理命令】Linux文本处理命令主要有sort命令和uniq命令 。sort命令的功能是对档案中的各行进行排序 。sort命令的功能是对档案中的各行进行排序 。uniq命令用于删除档案中重複行,只留下每条记录的唯一样本 。
基本介绍中文名:Linux文本处理命令
分类:sort命令与uniq命令
sort功能:对档案中的各行进行排序
uniq功能:用于删除档案中重複行
Sort命令sort命令的功能是对档案中的各行进行排序 。sort命令有许多非常实用的选项,这些选项最初是用来对资料库格式的档案内容进行各种排序操作的 。实际上,sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似资料库记录的档案 。Sort命令将逐行对档案中的内容进行排序,如果两行的首字元相同,该命令将继续比较这两行的下一字元,如果还相同,将继续进行比较 。语法:sort [选项] 档案说明:sort命令对指定档案中所有的行进行排序,并将结果显示在标準输出上 。如不指定输入档案或使用“- ”,则表示排序内容来自标準输入 。sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的 。排序关键字定义了用来排序的最小的字元序列 。预设情况下以整行为关键字按ASCII字元顺序进行排序 。改变预设设定的选项主要有:- m 若给定档案已排好序,合併档案 。- c 检查给定档案是否已排好序,如果它们没有都排好序,则列印一个出错信息,并以状态值1退出 。- u 对排序后认为相同的行只留其中一行 。- o 输出档案 将排序输出写到输出档案中而不是标準输出,如果输出档案是输入档案之一,sort先将该档案的内容写入一个临时档案,然后再排序和写输出结果 。改变预设排序规则的选项主要有:- d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义 。- f 将小写字母与大写字母同等对待 。- I 忽略非列印字元 。- M 作为月份比较:“JAN”<“FEB” p>- r 按逆序输出排序结果 。+posl - pos2 指定一个或几个栏位作为排序关键字,栏位位置从posl开始,到pos2为止(包括posl,不包括pos2) 。如不指定pos2,则关键字为从posl到行尾 。栏位和字元的位置从0开始 。- b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符) 。- t separator 指定字元separator作为栏位分隔设定 。下面通过几个例子来讲述sort的使用 。用sort命令对text档案中各行排序后输出其结果 。请注意,在原档案的第二、三行上的第一个单词完全相同,该命令将从它们的第二个单词vegetables与fruit的首字元处继续进行比较 。$ cat textvegetable soupfresh vegetablesfresh fruitlowfat milk$ sort textfresh fruitfresh vegetableslowfat milkvegetable soup用户可以保存排序后的档案内容,或把排序后的档案内容输出至印表机 。下例中用户把排序后的档案内容保存到名为result的档案中 。$ sort text>result以第2个栏位作为排序关键字对档案example的内容进行排序 。$ sort +1-2 example对于file1和file2档案内容反向排序,结果放在outfile中,利用第2个栏位的第一个字元作为排序关键字 。$ sort -r -o outfile +1.0 -1.1 examplesort排序常用于在管道中与其他命令连用,组合完成比较複杂的功能,如利用管道将当前工作目录中的档案送给sort进行排序,排序关键字是第6个至第8个栏位 。$ ls - l | sort +5 - 7sort命令也可以对标準输入进行操作 。例如,如果您想把几个档案文本行合併,并对合併后的文本行进行排序,您可以首先用命令cat把多个档案合併,然后用管道操作把合併后的文本行输入给命令sort,sort命令将输出这些合併及排序后的文本行 。在下面的例子中,档案veglist与档案fruitlist的文本行经过合併与排序后被保存到档案clist中 。$ cat veglist fruitlist | sort > clistuniq命令档案经过处理后在它的输出档案中可能会出现重複的行 。例如,使用cat命令将两个档案合併后,再使用sort命令进行排序,就可能出现重複行 。这时可以使用uniq命令将这些重複行从输出档案中删除,只留下每条记录的唯一样本 。语法:uniq [选项] 档案说明:这个命令读取输入档案,并比较相邻的行 。在正常情况下,第二个及以后更多个重複行将被删去,行比较是根据所用字元集的排序序列进行的 。该命令加工后的结果写到输出档案中 。输入档案和输出档案必须不同 。如果输入档案用“- ”表示,则从标準输入读取 。该命令各选项含义如下:- c 显示输出中,在每行行首加上本行在档案中出现的次数 。它可取代- u和- d选项 。- d 只显示重複行 。- u 只显示档案中不重複的各行 。- n 前n个栏位与每个栏位前的空白一起被忽略 。一个栏位是一个非空格、非制表符的字元串,彼此由制表符和空格隔开(栏位从0开始编号) 。+n 前n个字元被忽略,之前的字元被跳过(字元从0开始编号) 。- f n 与- n相同,这里n是栏位数 。- s n 与+n相同,这里n是字元数 。例如:1. 显示档案example中不重複的行 。uniq - u example2. 显示档案example中不重複的行,从第2个栏位的第2个字元开始做比较 。uniq - u - 1 +1 example