使用Unix命令对文件进行排序/编辑?

时间:2012-04-16 04:02:18

标签: sorting unix filter

我有一个300MB的文件,如下所示:

  

物品项目
  商品项目
  Item2东西
  ......

基本上是两列一直向下。所以每行有两个条目。列由this character(Alt +0009)分隔,我相信它是“制表符”字符。行由字母数字按第一列条目排序。

基本上我需要对这个文件做的就是生成一个新文件,如下所示:

  • 首先,按第二个列条目按字母顺序对行进行排序。
  • 其次,删除第二列条目永远不会出现在文件中的所有行,作为第一列条目之一。

例如:

  

A B
  A C
  A E
  C A
  E F

转到

  

C A
  A B
  A C
  A E
  E F

然后终于

  

C A
  A C
  A E

(请注意,在此示例中,我使用空格字符而不是制表符来分隔列,在我尝试排序的文件中,列由制表符分隔(Alt +0009))

那么我将如何使用Unix命令进行此操作?

1 个答案:

答案 0 :(得分:2)

可以使用sort实用程序(正确设置-k标志)来处理第一个操作。第二个操作更复杂,可能需要实现某种自定义脚本。