次の名前のファイルが 800 個あります。
Centrum.text.201601-01
Centrum.text.201601-02
月に30日まで01など12ヶ月全体。
私が望むのは、すべてのファイルの名前を一度に次のように変更することです。
Centrum.201601-01.text
Centrum.201602-12.text
その月にも同じです。
可能であれば1行で。オペレーティングシステム - rhel5
答え1
努力する
rename -n 's/Centrum.text.(.*)/Centrum.$1.text/' Cen*
時事
s/Centrum.text.(.*)/Centrum.$1.text/
交換表示(内部パターン移動)
それから
rename 's/Centrum.text.(.*)/Centrum.$1.text/' Cen*
編集する:
名前が変更されていない場合は、ファイルを含むディレクトリから
ls -1 | awk -F. '/Centrum/ {printf "mv %s.%s.%s %s.%s.%s\n",$1,$2,$3,$1,$3,$2}'
プレビュー用
-1
(1行に1つのファイル)inはls
役に立たないかもしれませんが、lsのエイリアスがある場合に備えてです。/Centrum/
ファイル名によるフィルタリング{printf "mv %s.%s.%s %s.%s.%s\n",$1,$2,$3,$1,$3,$2}
日付とテキストフィールドを置き換えます。
| bash
すべてがうまくいったら、最後に追加してください。