.-.
ファイル名を一括で変更する必要があります。.
目標:file.-.txt
今file.txt
rename 's/.-./.' *.txt
動作しません。何が問題なの?
ベストアンサー1
Perl バージョンを使用しない理由は、Perl バージョンを使用している場合、rename
代替式の末尾の欠落によってエラーが発生するためです。Substitution replacement not terminated at (eval 1) line 1.
/
したがって、次の構文を使用する必要があります。「他」rename
rename -vn -- '.-.' '.' *.txt
この特別な場合にはソースやターゲットパターンにシェル glob 文字(など)がないので実際に引用する必要はありませんが*
、良い習慣なのでとにかくここで引用しました。
状況に応じた結果が得られた場合は、-v
(verbose)と(no action)のいずれかまたは両方を削除してください。すべての項目をに置き換えるオプションが-n
追加されました。たとえば、代わりに名前を変更するか(続きの名前をに変更する)、astエントリを変更します。-a
a
.-.
.
foo.-.bar.-.txt
foo.bar.txt
foo.bar.-.txt
file.-.-.txt
file.-.txt
-l
l
不思議なことに、このrename
コマンドはs/.-./.
(例えば、対応する7文字)をソースパターンとして使用し、*.txt
globで最初に一致するファイル名をターゲットパターンとして使用します。その後、ソースパターンをglobの残りの各ファイルと一致させようとします*.txt
。明らかに、これはどんなものとも一致せず、構文エラーがないため、メッセージは出力されません。