0

我正在尝试对两个文件进行排序以加入它们。我排序的一些键非常相似,这似乎导致了问题。例如,我有两个键,它们是a1kea1k3-b3。我正在使用命令:

sort -nk1 file.txt -o file.txt

在一个文件中,它们按此顺序出现,而在另一个文件中,它们以相反的顺序出现。当我尝试加入文件时,这会导致问题。

如何对这些文件进行排序,使它们的顺序相同?

谢谢

4

1 回答 1

0

不要使用“-n”选项,它根据字符串数值进行比较。

-n
Compare according to arithmetic value an initial numeric string consisting of optional white
space, an optional - sign, and zero or more digits, optionally followed by a decimal point and
zero or more digits.

您的键是字符串,而不是数字。

相反,你应该这样做:

sort -k1 file.txt -o file.txt

附加信息:

您可以看到,当使用唯一排序时,sort您的键是相同的:-n

sort -un file

你会看到a1k3-b3并且a1ke被认为是相等的(因此只发出一个)。相反,如果您这样做:

sort -u file

结果将同时包含a1k3-b3a1ke,这是您想要的。

于 2013-08-26T16:10:09.360 回答