linux命令(47):Linux下对文件进行按行排序,去除重复行

时间:2021-01-04 13:30:30

Linux下对文件进行按行排序:sort 与 uniq 命令简介

Linux | May 24, 2015 | linux

sort 命令可针对文本文件的内容,以行为单位进行排序。其基本语法格式为:

sort [-bcfMnrtk][源文件][-o 输出文件]

参数:

  • -b 忽略每行前面开始出的空格字符。
  • -c 检查文件是否已经按照顺序排序。
  • -f 排序时,忽略大小写字母。
  • -M 将前面3个字母依照月份的缩写进行排序。
  • -n 依照数值的大小排序。
  • -o<输出文件> 将排序后的结果存入指定的文件。
  • -r 以相反的顺序来排序。
  • -t<分隔字符> 指定排序时所用的栏位分隔字符。
  • -k 选择以哪个区间进行排序。

uniq 命令用于去除文件中重复的行,这个命令可以配合 sort 命令使用,将排序过程中出现的重复行去掉。其基本语法格式为:

uniq [选项] 文件

参数:

  • - c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。
  • - d 只显示重复行。
  • - u 只显示文件中不重复的各行。
  • - n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。
  • +n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。
  • - f n 与- n相同,这里n是字段数。
  • - s n 与+n相同,这里n是字符数。

例:

$ sort filename uniq -c

以上操作对文件进行排序,并去除重复的行,同时在行首显示重复出现的次数。