任意の文字サフィックスを削除するためにファイル名を変更する機能をスクリプト化する方法

任意の文字サフィックスを削除するためにファイル名を変更する機能をスクリプト化する方法

任意の文字が追加されたファイル名がたくさんあります。同じディレクトリに追加された文字を引いた元のファイル名にバッチ名を変更したいと思います。

例:

から: 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名前の変更を開始する前に、重複しているかどうかを確認してください。

関連情報