与えられたファイルのデータを印刷できるように、コマンドの出力をコマンドにリダイレクトしたいとfind
思います。cat
たとえば、findの出力がある場合、/aFile/readme
catはと解釈する必要がありますcat ./aFile/readme
。このタスクをすぐに実行するにはどうすればよいですか?
パイプを使うべきですか?
私はこのバージョンを試しました:
cat | find ./inhere -size 1033c 2> /dev/null
しかし、それは完全に間違っていると思いますか?もちろん、出力は複数のファイルではなく1つのファイルにすぎないと確信しています。
ではどうすればいいですか? Googleで検索しましたが、解決方法が見つかりませんでした。検索が正しく行われていないようです:P
ベストアンサー1
find
次の操作のみを使用して-exec
これを実行できます。
find /location -size 1033c -exec cat {} +
{}
見つかったファイルに置き換えられ、複数の引数を使用できるため、各呼び出しfind
で+
できるだけ多くの引数を読み取ることができます。cat
cat
find
標準の拡張子がない場合、またはファイル+
を1つずつ読みたい場合:
find /location -size 1033c -exec cat {} \;
オプションのいずれかを使用するには、cat
次の手順を実行します。
find /location -size 1033c -exec cat -n {} +
find /location -size 1033c -exec cat -n {} \;
ここでは、この-n
オプションを使用して行番号を取得します。