きり丸の技術日記

技術・エンジニアのイベント・資格等はこちらにまとめる予定です

【シェル】ファイル名にprefixを追加してrenameするだけのシェルを作る

探せばいっぱい出てくるので、単純に「やってみた」記事。

シェルとかツールをサクっと作れるとかっこいいよね。
とはいえ、テストはしづらいから、本当はPythonとかで作ったほうがいいのかも…。

まぁ、シェルなら障害調査でオンプレミスなら使えると思うので、地味に役に立つはず。

クラウドの障害調査時は他の人はどうやってるんだろうか。 GUIでしか確認したことないから、こういうのCLIでできるようになればレベルアップにつながるんだろうなぁ。

prefixとsuffixとは


この記事で初めてこの単語の意味を知る、という人もいないと思いますが、一応捕捉。


prefix(プレフィックス)は、始めについている名前のこと。
人の名前を呼ぶときのMr.とかMs.みたいなもの。

{サービス名}_healthcheck.sh
とかが使用例として多いかも。

私のブログ記事の【シェル】とかもprefixとも言えるんじゃないでしょうか。
そこは良く知らないですけど。

ひどい現場だとこんな感じの管理をしたりしますね。

  • 【最新】仕様書.xlsx
  • 【最終決定版】仕様書.xlsx
  • 【V2】仕様書.xlsx

suffix(サフィックス)は、逆に後ろについている名前のこと。
きり丸「さん」とか「くん」とか。

よくファイル名の後ろに連番とか日付名とか入れてるのもSuffixと呼ばれますね。

  • 仕様書_01.xlsx
  • 仕様書_02.xlsx
  • 仕様書_20200920.xlsx

やりたかったこと


  • 特定のディレクトリのファイル名をprefixをつけて一括置換したい

使い方


./shell名 ディレクトリ 追加したいPrefix
# 例
./rename.sh ap_server animals

シェルの中身


awkもxargsもよくわかってない。

# !/bin/sh
cd $1
prefix=$2
ls | awk '{print $1 " "prefix $1 }' prefix=$prefix"_" | xargs -n 2 mv

終わりに


知らないことが多すぎるので、レベル下げれば何でも書けますね。

地味にrenameで困ることがあるので、自分の中ではそれなりに使えると考えてます。


もしこの記事が役に立ったのであれば、はてぶ、Twitterでの記事の拡散、twitterのフォローもよろしくお願いします。

私の励みになります。