"小文字を大文字に"、"ある文字を別の文字に" 変更するシェルスクリプト
Java のコードで "aaa.bbb.ccc" ( ソフトウェアのプロパティ名みたいです ) みたいにハードコードされている箇所を private static な定数に変更してくださいという依頼がありました。ひとつひとつ手でやるのは面倒ですし、修正ミスしてしまう恐れもあるので、シェルスクリプトを書いてみました。
#!/bin/sh while read line; do echo $line | tr '[a-z]' '[A-Z]' | tr '.' '_' done < $1
変数名の命名規則は aa.bbb.ccc -> AAA_BBB_CCC、変換したい文字列についてはファイルに一行ずつ書いてそのファイルを引数として渡す感じにしています。
o 引数にしているファイル ( 例 )
aaa.bbb.ccc ddd.eee.fff ggg.hhh.iii
o 出力
AAA_BBB_CCC DDD_EEE_FFF GGG_HHH_III
private static な定数までわかっているなら、以下みたいな感じでもいいですね。
#!/bin/sh QUART="\"" while read line; do NAME=$(echo $line | tr '[a-z]' '[A-Z]' | tr '.' '_') echo "private static String" $NAME "=" $QUART$line$QUART done < $1
本当は Java のソース食わせれば上記のようにしてくれるまでできればいいかもですが、難しそうですし、そんなに需要あるものでもなさそうですので、上記ぐらいで。
以上です。