ほとんどのコマンドに関する多くの回答で、STDINで使用されているなどのtext-processing
コマンドを表示し、単にファイルを開くことができます。sed
awk
grep
例えば
$ sed -e 's|foo|bar|g' file # open file
$ sed -e 's|foo|bar|g' <file # open STDIN
または
$ grep 'PATTERN' file # open file
$ grep 'PATTERN' <file # open STDIN
個人的にファイルを開く方法を常に使用していますが、いつ使用して使用しないか、そして違いが何であるかを知りたいです。
ベストアンサー1
それはニーズに依存します。この場合、標準入力のファイル名またはパイプを使用すると違いがあります。
bash-4.1$ cat /etc/passwd /etc/group | wc -l
128
bash-4.1$ wc -l /etc/passwd /etc/group
49 /etc/passwd
79 /etc/group
128 total
bash-4.1$
さらに、標準入力はあまりlseek(3)
強力ではない傾向があるため、アプリケーションに照会できるファイル記述子が必要な場合(最初に巻き戻すなど)、標準入力を使用できない可能性があります。