ファイル名に含まれるキャリッジリターンを繰り返し削除する方法

ファイル名に含まれるキャリッジリターンを繰り返し削除する方法

何十ものフォルダ階層から何千ものファイル名に追加されたキャリッジリターン\ r文字を繰り返し削除する方法はありますか?また、すべてのファイルが影響を受けるわけではありません。

たとえば、ls コマンドは Cymbal2.wav? を表示します。ここで、? は \r 文字です。

私はMacOSを使用しているので、ここが正しいフォーラムではない場合...

ベストアンサー1

変種@gilsの答え削除みんな(非表示)ファイル名にCR文字が表示されるたびに。

autoload -Uz zmv # best in ~/.zshrc
zmv $'(**/)(*\r*)' $'$1${2//\r}'

(これらのファイルがある最上位ディレクトリから)。

$fここでは、ファイル名のみを変更し、他のパス名コンポーネントは変更しないことが重要であるため、使用したくありません。そうすればうまくmv $'a\rb/c\rd' ab/cdいかないからです。再帰的なグローバル変数を処理するため、まず実行してからmv $'a\rb/c\rd' $'a\rb/cd'実行する必要があります。mv $'a\rb' abzmv深さ優先(#qoD)修飾子を追加してください)。

$1上記の$2スキーマキャプチャの内容は、ディレクトリ名とデフォルト名にも同じことが当てはまります。(...)$1$2

おすすめ記事