UNIXの哲学は次のように述べています。これは一般的なインターフェースなので、テキストを処理するプログラムを書いてください。
コマンドsort
(少なくともGNUソート)には、代わりにファイル-o
に出力するオプションがありますstdout
。sort foobar -o whatever
可能であれば、なぜこれが役に立ちますかsort foobar > whatever
?
ベストアンサー1
これを持っているのはGNUクラスだけではありません。 BSDソートにもあります。なぜ?
(この質問も良い質問だと思います...)
マニュアルページから:「与えられた引数は、標準出力ではなく、使用する出力ファイルの名前です。ファイルは入力ファイルの1つと同じにすることができます。」
リダイレクトを介して同じファイルに移動できず、出力リダイレクトのためにファイルが消去されます。
より明確に説明するには、ファイルを並べ替え、並べ替えられた結果を同じ場所に配置したい場合は、そうすることを検討してくださいsort < foo > foo
。ただし、出力リダイレクトはfoo
出力を受信する準備をするためにファイルを切り捨てます。それでは整理することはありません。 「-o」なしで行う方法はですsort < foo > bar ; mv bar foo
。この-o
オプションは、心配することなく同様のことを行うと思います。