服务热线:0551-64390831 售后服务:0551-64238225 | 热销新品 | 支付方式 | 客服中心

中国合租服务器的创始者

专业的虚拟主机供应商

新闻公告
联系我们

咨询热线:0551-64287617

技术支持:0551-64238225

传真号码:0551-64390832

售前QQ:点击这里给我发消息

售前QQ:点击这里给我发消息

备案QQ:点击这里给我发消息

备案咨询:0551-64287017

怎样使用linux系统文本处理命令?
发布日期:2012-9-4 阅读次数:3162

Sort命令 
 
sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。
 
Sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。
 
语法:
 
sort [选项] 文件
 
说明:sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用“- ”,则表示排序内容来自标准输入。
 
sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按ASCII字符顺序进行排序。
 
改变缺省设置的选项主要有:
 
- m 若给定文件已排好序,合并文件。
 
- c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。
 
- u 对排序后认为相同的行只留其中一行。
 
- o 输出文件 将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort先将该文件的内容写入一个临时文件,然后再排序和写输出结果。
 
改变缺省排序规则的选项主要有:
 
- d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。
 
- f 将小写字母与大写字母同等对待。
 
- I 忽略非打印字符。
 
- M 作为月份比较:“JAN”<“FEB”<? <“DEC”。
 
- r 按逆序输出排序结果。
 
+posl - pos2 指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止(包括posl,不包括pos2)。如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从0开始。
 
- b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。
 
- t separator 指定字符separator作为字段分隔符。
 
下面通过几个例子来讲述sort的使用。
 
 
用sort命令对text文件中各行排序后输出其结果。请注意,在原文件的第二、三行上的第一个单词完全相同,该命令将从它们的第二个单词vegetables与fruit的首字符处继续进行比较。
 
$ cat text
 
vegetable soup
 
fresh vegetables
 
fresh fruit
 
lowfat milk
 
 
 
$ sort text
 
fresh fruit
 
fresh vegetables
 
lowfat milk
 
vegetable soup
 
用户可以保存排序后的文件内容,或把排序后的文件内容输出至打印机。下例中用户把排序后的文件内容保存到名为result的文件中。
 
$ sort text>result
 
 
以第2个字段作为排序关键字对文件example的内容进行排序。
 
$ sort +1-2 example
 
 
对于file1和file2文件内容反向排序,结果放在outfile中,利用第2个字段的第一个字符作为排序关键字。
 
$ sort -r -o outfile +1.0 -1.1 example
 
 
sort排序常用于在管道中与其他命令连用,组合完成比较复杂的功能,如利用管道将当前工作目录中的文件送给sort进行排序,排序关键字是第6个至第8个字段。
 
$ ls - l | sort +5 - 7
 
sort命令也可以对标准输入进行操作。例如,如果您想把几个文件文本行合并,并对合并后的文本行进行排序,您可以首先用命令cat把多个文件合并,然后用管道操作把合并后的文本行输入给命令sort,sort命令将输出这些合并及排序后的文本行。在下面的例子中,文件veglist与文件fruitlist的文本行经过合并与排序后被保存到文件clist中。
 
$ cat veglist fruitlist | sort > clist
 
 
 
uniq命令
 
文件经过处理后在它的输出文件中可能会出现重复的行。例如,使用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 example
 
2. 显示文件example中不重复的行,从第2个字段的第2个字符开始做比较。 
 
uniq - u - 1 +1 example
 
顺祝商祺!
转载请注明来源中国合租网:http://www.hzfwq.com/user/shownews.asp?newsid=746
 
相关推荐文章:

1、什么是Linux操作系统?

2、Linux的主要框架有哪些?

3、linux操作系统的发展!

4、linux操作系统有哪些特征?

5、linux操作系统和其他操作系统有什么不同?

6、如何操作登录和退出linux系统?

7、如何进行linux系统文件和目录的操作?

8、linux操作系统有哪些文件和目录操作相关命令?

快捷菜单