「find」コマンドの出力に「cat」コマンドを使用するには?

「find」コマンドの出力に「cat」コマンドを使用するには?

与えられたファイルのデータを印刷できるように、コマンドの出力をコマンドにリダイレクトしたいとfind思います。cat

たとえば、findの出力がある場合、/aFile/readmecatはと解釈する必要がありますcat ./aFile/readme。このタスクをすぐに実行するにはどうすればよいですか?

パイプを使うべきですか?

私はこのバージョンを試しました:

cat | find ./inhere -size 1033c 2> /dev/null

しかし、それは完全に間違っていると思いますか?もちろん、出力は複数のファイルではなく1つのファイルにすぎないと確信しています。

ではどうすればいいですか? Googleで検索しましたが、解決方法が見つかりませんでした。検索が正しく行われていないようです:P

ベストアンサー1

find次の操作のみを使用して-execこれを実行できます。

find /location -size 1033c -exec cat {} +

{}見つかったファイルに置き換えられ、複数の引数を使用できるため、各呼び出しfind+できるだけ多くの引数を読み取ることができます。catcat

find標準の拡張子がない場合、またはファイル+を1つずつ読みたい場合:

find /location -size 1033c -exec cat {} \;

オプションのいずれかを使用するには、cat次の手順を実行します。

find /location -size 1033c -exec cat -n {} +
find /location -size 1033c -exec cat -n {} \;

ここでは、この-nオプションを使用して行番号を取得します。

おすすめ記事