GNU/Linux >> Linux の 問題 >  >> Linux

ファイルの cat'ing と grep へのパイプの利点

猫は避けたほうがいいです。行の編集が重要な場合は、このように記述してください:

$ < filename grep pattern

その理由は、cat を介してすべてのデータをプッシュすると、メモリと CPU リソースが消費されるためです。 stdin をリダイレクトするのではなく、ファイル名を引数として渡すことのもう 1 つの利点は、コマンドがファイルを mmap() するオプションを使用できることです。


「猫の無用な使用」 http://www.smallo.ruhr.de/award.html にまだ誰も言及していないなんて信じられない

疑わしい利点が 1 つあります。長いパイプラインがある場合は、cat:ともう少し直交しているように見えます:

cat file | command1 | command 2 | command3

すべてのコマンドがまとめられています。

もちろん、他の人が言ったように (そして私もそうです)

< file command1 | command2 | command3

ほとんど同じことを実行します。そうは言っても、cat はかなり小さいので、必要のないときに使用してもコンピューターがダウンすることはありません。

通常は cat を使用 vsファイルを直接叩いても何も変わりませんが、 grep など、引数として複数のファイルがあるかどうかを気にする特定のコマンドには違いがあります .適切なケース:

cat file1 file2 | grep SOMETHING

とは異なる出力になります
grep SOMETHING file1 file2

出力に一致するファイル名が含まれます。ファイル名が必要ない場合もありますが、cat を使用する利点があります。 .


利点はありません。代わりに次のように構成すれば、カーソルが最後にあることもあまり問題になりません:< inputfile grep -args foo


Linux
  1. 2つのパターンの間(およびそれを含む)の線を印刷しますか?

  2. Catと「>」の違いでファイルをゼロにする?

  3. Command Grepを使用して検索しますか?

  1. Grep And Tail -f?

  2. ファイル記述子が開かれ、一度だけ読み取られるのはなぜですか?

  3. Linuxgrepコマンド

  1. ファイル名のパターンとファイルの内容に基づいてファイル名を一覧表示しますか?

  2. ファイル内で \n を grep する方法

  3. パターンとファイルの grep ペア