0

2 つのファイルを結合するために並べ替えようとしています。私がソートしているキーのいくつかは非常に似ており、これが問題を引き起こしているようです。たとえば、 と の 2 つのキーがa1keありa1k3-b3ます。私はコマンドを使用しています:

sort -nk1 file.txt -o file.txt

1 つのファイルではこの順序で表示され、別のファイルでは逆に表示されます。これは、ファイルを結合しようとすると問題を引き起こします。

これらのファイルを同じ順序になるように並べ替えるにはどうすればよいですか?

ありがとう

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(したがって、1 つだけが出力されます)。代わりに次のようにします。

sort -u file

結果には、必要なa1k3-b3a1keの両方が含まれます。

于 2013-08-26T16:10:09.360 に答える