任意の文字が追加されたファイル名がたくさんあります。同じディレクトリに追加された文字を引いた元のファイル名にバッチ名を変更したいと思います。
例:
から: foobar.txt_fdnf
Bubble.txt_terj
apple.txt_fspd
到着する: foobar.txt
Bubble.txt
apple.txt
答え1
rename
正規表現でコマンドを使用してバッチの名前を変更できます。
Debianベースのディストリビューションではこのパッケージを「名前変更」といい、Archベースのディストリビューションではperl-rename
。
(この正規表現では、すべてのファイルが.txt_randomtextパターンに従うと仮定します。)
rename -n 's/\.txt_.+/.txt/' *.txt*
-n
オプションを使用すると、変更を適用する前に確認できます。ファイル名がこのように変更されたと判断した場合は、-n
オプションを削除してコマンドを再実行してください。
答え2
存在するzsh
:
autoload -Uz zmv
zmv -n '(*.txt)_[[:lower:]](#c4)' '$1'
(-n
満足すればテスト実行のために削除)
.txt
名前が4つの小文字で終わるファイル(発音記号なしで英語の26文字に制限されている)[[:lower:]]
は名前が変更されます。[a-z]
zmv
名前の変更を開始する前に、重複しているかどうかを確認してください。