1
このコマンドが機能しない理由は何ですか? btw、私は現在のディレクトリ内のすべてのcsvファイルの拡張子を取り除こうとしています。ファイル名からexecとstrip拡張子を見つける
find -type f -iname "*.csv" -exec mv {} $(basename {} ".csv") \;
パラメータ拡張、xargsを含む多くの変種を試してみました...それでもすべて無駄でした。
このコマンドが機能しない理由は何ですか? btw、私は現在のディレクトリ内のすべてのcsvファイルの拡張子を取り除こうとしています。ファイル名からexecとstrip拡張子を見つける
find -type f -iname "*.csv" -exec mv {} $(basename {} ".csv") \;
パラメータ拡張、xargsを含む多くの変種を試してみました...それでもすべて無駄でした。
まず、サブディレクトリがないことに注意してください。 find
は、余分な引数なしで、自動的に以下のディレクトリに再帰します。
シンプルなアプローチ:あなたは十分に小さいファイルの数、ちょうどグロブを使う(*)演算子、およびrenameを利用している場合:
$ rename 's/.csv$//' *.csv
をあなたはあまりにも多くのファイルがある場合、find
を使用し、おそらくxargs
:
$ find . -maxdepth 1 -type f -name "*.csv" | xargs rename 's/.csv$//'
あなたが本当に安全にしたい場合は、そうトン、ヌル・バイトを区切るためにfind
とxargs
を伝えますあなたが奇妙なファイル名(空白や改行など)を持っていない場合:
回答はありましたか?もしそれが受け入れられて投票が完了できるように感じたら、 – Inian
この回答はあなたのために働いたのですか?下の私の答えにフィードバックを残すか – Inian