前提・実現したいこと
RHEL7.x にてバックアップするシェルスクリプトを作成しようとしています。
やりたいこととしては、
特定のフォルダに生成されたファイルが多数あります。
このファイルは命名規則があって
AAA_somu_YYYYMMDD.csv
AAA_keiri_YYYYMMDD.csv
BBB_keiri_YYYYMMDD.csv
CCC_somu_YYYYMMDD.csv
のように、
最初3文字、部門、日付といったファイル名になっています。
これをバックアップしたいのですが、ファイル名を置換させたいです。
AAA_somu_YYYYMMDD.csv → XXXX01AA.csv
AAA_keiri_YYYYMMDD.csv → XXXX02AA.csv
BBB_keiri_YYYYMMDD.csv → XXXX02BB.csv
CCC_somu_YYYYMMDD.csv → XXXX01CC.csv
ファイル名の先頭3文字を、後ろに2文字に置き換え(3文字目はカット)
somuは01、keiriは02にコード化させたいです。
先頭4文字は固定です。
ファイル数がたくさんあるため、シェルで回したいと思いますが
ファイル名の置換でつまづいてます。
renameコマンドの検討もしてみましたが、REHLではutil-linuxだったりして上手く行きませんでした。
どのような方法がとれますでしょうか。
お手数をおかけしますが、よろしくお願いいたします。
追加情報
皆様からいろいろご教授いただきありがとうございます。
申し訳ありませんがもう少し条件をつけさせてください。
各ファイルのディレクトリを別々に配置したいと思います。
最初3文字のディレクトリはファイル名の3文字と同一です。
必ず英文字で数字や記号は入りません。
/file/AAA/AAA_somu_YYYYMMDD.csv
/file/AAA/AAA_keiri_YYYYMMDD.csv
/file/BBB/BBB_keiri_YYYYMMDD.csv
/file/CCC/CCC_somu_YYYYMMDD.csv
個別でご質問いただいておりました日付に関しては、ファイル名リネーム後に空っぽにする処理を別途行っております。
生成されるファイル時点では必ず空になっている状態にしています。
/file/AAA
/file/BBB
/file/CCC
という状態になっています。
ご提示していただいた処理を、それぞれ試してみましたが上記のようなディレクトリ構成だと上手く行きませんでした。
mv: `AAA_somu_20200430.csv' を stat できません: そのようなファイルやディレクトリはありません
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/01 02:49
2020/05/01 04:30
2020/05/01 12:05