文字列
シェルスクリプトの変数に入っているものはすべて文字列
文字列の先頭からn文字を取り出す。
echo "$VAR" | cut -c1-n
bash 拡張
echo ${VAR::n}
文字列の先頭からn文字を除外する。
bash 拡張
echo ${VAR:n}
文字列の最後n文字を取り出す。
echo ${VAR} | rev | cut -c1-n | rev
文字列の先頭n文字を除外して、m文字分取り出す。
bash 拡張
echo ${VAR:n:m}
echo ${VAR} | cut -c A-B,C-
A文字目からB文字目まで(B含む)
cut
文字列の長さを取得する。
文字セットは、ロケール設定に依存し、環境変数 LANG, LC_CTYPE, LC_ALL の設定に依存する。(後方ほど強い)
echo ${#VAR}
バイト長であれば LC_ALL=C にすると計算できる。(ISO-8851 扱い)
安全のために、サブシェルに切り離す場合
LC_ALL=C X="$VAR" sh -c "echo \${#X}"