0

有没有办法在 Linux (GNU) 中对文本文件进行排序,比如 CSV 或者不是按行 (sort | uniq) 而是按字符串位置。例子:

John Doe|Something|c4ca4238a0b923820dcc509a6f75849b|Blah Blah
John Smith|Nothing|c81e728d9d4c2f636f067f89cc14862c|Blah Blah
Johanna Doe|Another thing|c4ca4238a0b923820dcc509a6f75849b|Blah Blah
J Doe|Does not matter|eccbc87e4b5ce2fe28308fd9f2a7baf3|Blah Blah

那么有没有一种方法可以使用常见的 GNU 工具(如 sed、awk、cut...)来获得此输出:

John Doe|Something|c4ca4238a0b923820dcc509a6f75849b|Blah Blah
John Smith|Nothing|c81e728d9d4c2f636f067f89cc14862c|Blah Blah
J Doe|Does not matter|eccbc87e4b5ce2fe28308fd9f2a7baf3|Blah Blah

md5 哈希(在这种情况下)必须是唯一的,而不是其他数据。

谢谢!

4

1 回答 1

3
sort -u -t\| -k3,3 input-file.txt

论据解释:

  • -u: 独特的记录
  • -t\|:将字段分隔符设置为|(反斜杠用于转义,|因此shell不会将其作为管道处理)
  • -k3,3:使用第 3 列(并且仅第 3 列)作为排序键
于 2013-07-02T13:31:03.347 回答