回答:
なぜならsort
、あなたが期待する方法でこれらを解析する方法で実装されているからです。
こちらもご覧ください。
- オプションとその引数は一緒に実行されることもあれば、空白で区切られることもあれば、文字(通常は:または=)で区切られることもあります。したがって、「Prog -fFilename」、「Prog -f Filename」、「Prog -f:Filename」、「Prog -f = Filename」となります。
- 一部のプログラムでは、単一文字のオプションを組み合わせることができます。他の人はしません。スイッチ "-fA"は、 "-f -A"と同じことを意味する場合もあれば、間違っている場合もあります。または、有効だが異なるパラメーターである場合もあります。
これは、両方の組み合わせのように見えます(空白なしで機能し、単一文字オプションの組み合わせ)。
それらは、引数の解析が異なる方法で実装されている単純に異なるプログラムです。
ではcoreutils
8.13、次の比較::
src/sort.c
4315行目、特別な整数解析関数を呼び出しparse_field_count
て、最初の無効な文字を返します(つまり、数値が終了して次のオプションが開始されると)。これsort
が引数を処理できる理由です。src/cut.c
、803行目以降、単にgetopt
現在のオプションのパラメーターとして次の空白まですべてを解釈する通常の動作を使用しています。
sort
一般的な規則に従っていますか?cut
その方法では動作しません。