回答編集履歴

1

補足

2023/05/24 11:47

投稿

otn
otn

スコア85630

test CHANGED
@@ -1,4 +1,7 @@
1
+ > 理由はよくわからないけど以下にしたらできた。
2
+ ということなので、理由を回答します。
3
+
1
- 手元の環境(gnu-sortとFreeBSD sort)で試すと、どちらも、
4
+ その前に、手元の環境(gnu-sortとFreeBSD sort)で試すと、どちらも、
2
5
  ```test.log(コマンド実行後)
3
6
  id age
4
7
  1 0
@@ -8,8 +11,9 @@
8
11
  ```
9
12
  ですね。`0`の行は残りません。
10
13
  `0`の行が残るというのは、どういうOSでどういうsortを実行したのでしょうか?
11
- もしコピペミスで、実際には`0`の行は残ってない?
14
+ おそらコピペミスで、実際には`0`の行は残ってない?
12
15
 
16
+ ここからが、「理由」です。
13
17
  `--numeric-sort`は「文字列を数値とみなして比較する」なので(数値でない文字以降は無視される)、
14
18
  入力行(`-k`オプションが無いので行全体がキー)はそれぞれ、
15
19
  |入力行|見なされる数値|
@@ -27,7 +31,7 @@
27
31
  |2 2|2|
28
32
  |2 2|2|
29
33
 
30
- という数値として見なされ、「見なされる数値」がユニークになるように行が選択されます。
34
+ という数値として見なされ、「見なされる数値」がユニークになるように行が選択され、数値が同じ他の行は捨てられます。
31
35
 
32
36
  `--numeric-sort`を付けないと、行全体が一致したものが1つだけになります。
33
37