しばらくお待ちください。この投稿はやや長くなります...
私はたくさんのファイルを持っています、それらのいくつかはシンプルでクリーンな名前(例えば1E01.txt)であり、いくつかはたくさんの余分なものがあります:
Sample2_Name_E01_-co_032.txt
Sample2_Name_E02_-co_035.txt
...
Sample12_Name_E01_-co_061.txt
等々。ここで重要なのは、「サンプル」の後の数字と「名前」の後の文字+数字です。残りは使い捨てです。重要でない部分を削除すると、ファイル名は「クリーンな」ファイル名(2E01.txt、2E02.txt、...、12E01.txt)と同じパターンになります。私は次の式でファイルの名前を変更することができました(これは自分で思いついたものです。非常にエレガントかどうかはわかりませんが、正常に機能します)。
rename -v 's/Sample([0-9]+)_Name_([A-Z][0-9]+).*/$1$2\.txt/' *.txt
次に、2番目の部分は、1E01.txtが01E01.txtに変わるなど、1桁のファイル名に先行ゼロを追加することです。私はこれに成功しました(別のStackExchange投稿でこれを見つけて変更しました):
rename -v 'unless (/^[0-9]{2}.*\.txt/) {s/^([0-9]{1}.*\.txt)$/0$1/;s/0*([0-9]{2}\..*)/$1/}' *.txt
だから私はついに私の質問にたどり着きました:1つの名前変更コマンドで両方の式をマージする方法はありますか?プロセスを自動化するためにbashスクリプトを実行できることは知っていますが、必要なのは、ワンパスの名前変更ソリューションを見つけることです。
ありがとう