このようなプログラムはmv
引数として実際のファイル名が必要であることを知っていますが、このようなプログラムsort
はただ標準入力から読むそしてnames | sort > names
ファイル名を使用する代わりに、標準出力に書き込み、次の-o
オプションを指定してくださいsort names -o names
。
では、その理由は何ですか?
答え1
つまり、追加のプログラミングがほとんど必要なく、より柔軟性と使いやすさを備えたプログラムを提供します。だからなぜダメですか?
適切な方法で動作するほとんどのコアユーティリティには、この機能があります。私はPerlプログラマではありませんが、Diamond演算子も<>
同じように動作すると思います。つまり、ファイルがコマンドラインにある場合はファイルから読み込み、それ以外の場合はstdinから読み込みます。 Larryがこの機能のコアユーティリティは、Perlスクリプトを使用してかなり簡単にエミュレートできると言ったことを覚えているようです。
さらに、このプログラムは複数のファイルを同時に処理して互いに区別できます。猫を使用すると、これを行うことはできません。名前がないと、インライン(sed -i
)またはファイルベース()wc
を区別するユーティリティを持つことはできません。また、よりきれいに見えます(IMO):sort file -o sorted
または(btw、同じファイルを読み書きする場合はインラインcat file | sort > sorted
でsort <file >sorted
正しく機能しません)。