試してみてください。
find /directory -name "*pattern*" -exec sh -c 'cut -f8 {} > {}.txt' \;
しかし、いくつかのバージョンが異なった引数であることを{}
が必要で見つけ、それ以外の場合は、ファイル名に{}
を拡張しないことに注意してください。あなたがそれを回避することができます。
find /directory -name "*pattern*" -exec sh -c 'cut -f8 $0 > $0.txt' {} \;
(この代替コマンドがマッチしたファイルを含むサブディレクトリに出力ファイルを置く必要であれば、あなたは${0#*/}
にリダイレクトすることにより、問題があることを避けることができました。 find
がリダイレクトを行っていないことを、シェルは、あなたのコマンドでは、とまったく同じです:。標準から次
# Sample of INCORRECT code
find /directory -name "*pattern*" -exec cut -f8 {} \; > {}.txt
注:
2つの文字「{}」を含む複数の引数が存在する場合、その動作は指定されていません。
utility_nameまたは引数文字列に2つの文字 "{}"が含まれていて、 "{}"という2つの文字だけではない場合は、findがその2文字を置き換えるか、次を使用し、ウィリアムPursellは彼の答えで述べた警告に対処するために
私の知る限り、あなたの修正はトリックでした。ありがとう! 私は>が誤解されているのだろうかと疑っていた – user1757862