にデータを書き込むだけのスクリプトが 1 つありますstdout
。複数のファイルに対して実行し、入力ファイルごとに異なる出力ファイルを生成する必要があり、find -exec
そのためにどのように使用するのか疑問に思っていました。cat
だから私は基本的にこれのいくつかの変種を試しました(私はテスト容易性の目的でスクリプトを置き換えました):
find * -type f -exec cat "{}" > "{}.stdout" \;
しかし、すべてのデータが文字通り名前が付けられたファイルに書き込まれていたため、機能させることができませんでした{}.stdout
。
最終的に、私はそれを動作させることができました:
find * -type f -exec sh -c "cat {} > {}.stdout" \;
しかし、この最新の形式は でうまく機能しますがcat
、私のスクリプトではいくつかの初期化スクリプトを介して環境変数をロードする必要があるため、最終的には次のようになります。
find * -type f -exec sh -c "initscript1; initscript2; ...; myscript {} > {}.stdout" \;
現在のシェルですべてが既に初期化されているため、これは無駄に思えます。
でこれを行うより良い方法はありfind
ますか? 他のワンライナーは大歓迎です。