web-dev-qa-db-ja.com

`rename`を使用してすべてのファイルのすべての単一引用符を再帰的に削除するにはどうすればよいですか?

タイトルにはそれがすべてあり、はい、似たような質問がたくさんあることは知っていますが、見つけることができる最も近いのは「ではなく」を削除することでした。

find -name "*'*" -type f | rename 's/\'//g'

またはrename 's/[']//g'およびその他のバリエーション。すべてのファイルを見つけましたが、renameにパイピングすると、>for Promptを取得して、 Ctrl+C 戻ります。私は最近これで多くのファイルを変更しましたが、単一引用符を除いて、特殊文字の魅力のように機能しました。

3
Thomas

二重引用符を使用できます。

rename -n "s/'//g"

テスト後に-nを削除して、実際にファイルの名前を変更します

ただし、-execを使用します...

find -name "*'*" -type f -exec rename -n "s/'//g" '{}' \;

リストが長すぎない場合は、高速化してください...

find -name "*'*" -type f -exec rename -n "s/'//g" '{}' +
7
Zanna