Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 是否使用Unix命令对文件进行排序/编辑?_Sorting_Unix_Filter - Fatal编程技术网

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

Sorting 是否使用Unix命令对文件进行排序/编辑?,sorting,unix,filter,Sorting,Unix,Filter,我有一个300MB的文件,如下所示: 项目项目 项目项目 第2项某事 ... ... 基本上是两列一直向下。因此每行有两个条目。列之间用(Alt+0009)分隔,我认为这是“tab”字符。行按第一列条目按字母数字排序 基本上,我需要用这个文件生成一个新文件,如下所示: 首先,按第二列条目对行进行字母数字排序 第二,删除第二列条目从未作为第一列条目之一出现在文件中的所有行 例如: A B A C A E CA EF 去 CA A B A C A E EF 然后最后 CA A C E (请

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

项目项目
项目项目
第2项某事
... ...

基本上是两列一直向下。因此每行有两个条目。列之间用(Alt+0009)分隔,我认为这是“tab”字符。行按第一列条目按字母数字排序

基本上,我需要用这个文件生成一个新文件,如下所示:

  • 首先,按第二列条目对行进行字母数字排序
  • 第二,删除第二列条目从未作为第一列条目之一出现在文件中的所有行
例如:

A B
A C
A E
CA
EF

CA
A B
A C
A E
EF

然后最后

CA
A C
E

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


那么,如何使用Unix命令执行此操作呢?

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

这似乎有点过于专业化,您最好自己编写一个程序。
ae
行为什么会被删除,即使
ef
在输入中?@VeeArr啊,谢谢,修复了它。