それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

bashなどシェルスクリプトで大文字と小文字の変換

引数 を小文字に変えるスクリプト

takuya@rena:~/Desktop$ ./tolower.sh Aaa bBB
aaa bbb

こういうのほしい。

tr を使うのが手っ取り早い

いろいろとやり方はあるだろうけど、tr ならどこでも使えるので楽かなと。

tolower.sh

#/usr/bin/sh
if (( $# == 0  )) ; then
  tr "[A-Z]" "[a-z]"
else
  tr "[A-Z]" "[a-z]" <<< $@
fi

toupper.sh

upcase に 大文字化するには

#/usr/bin/sh
if (( $# == 0 )); then
  tr "[a-z]" "[A-Z]"
else
  tr "[a-z]" "[A-Z]" <<< $@
fi

もう少しスッキリ書く

標準入力か引数の何れか片方を取得する方法もあるので、ifを省略できる to_lower.sh

#!/usr/bin/env bash
tr "[:upper:]" "[:lower:]" <<< ${@:-$(</dev/stdin)}

参考資料

http://www.ksknet.net/cat24/post_111.html

Bashで変数を大文字小文字変換(uppercase/lowercase)する - Qiita

2021/04/07

shebang の記述が抜けてたので対応

2022-01-31

標準入力にも対応させた。