ABC_asd_f.txt
、、...DEF_qwe_r.txt
などのファイルがあります。
最初のアンダースコアの前の大文字をその後の小文字に置き換える方法は?だからそれは、ABC_asd_f.txt
なった、...asd_f_ABC.txt
DEF_qwe_r.txt
qwe_r_DEF.txt
ベストアンサー1
Perlを使用して名前を変更します。-n
フラグを使用してテストの実行を開始してください。
rename -n 's/^(...)_(..._.)/$2_$1/' *
それから、満足したら実際に実行してみてください。
rename 's/^(...)_(..._.)/$2_$1/' *
説明する
これはキャプチャグループを使用します。
rename 's/foo/bar/' *
:すべてのファイルfoo
に置き換えられます。bar
*
^(...)_(..._.)
:行の先頭から始めて^
最初の3文字をキャプチャし、(...)
スキップし_
て4番目の文字がアンダースコアで5文字をキャプチャします(..._.)
。$2_$1
:上記の文字列を反対のキャプチャグループ(たとえば、2番目、下線、1番目)に置き換えます。
バージョン名の変更
rename
Linuxの世界には2つあります。以下を使用してPerlの名前を変更するかどうかを確認できます。
$ rename --version
perl-rename 1.9
もう一つは別の結果を提供します。
$ rename --version
rename from util-linux 2.28