文字列の切り出し
バイト単位で切り出す場合
変数に対して切り出す場合
code:substr_byte_var.sh
r=$(printf '%s' "$v" | cut -b ${from}-${to})
$from は1からスタート。
$to はその文字を含む。
コードポイント単位で切り出す場合
cut コマンドは期待通りに動かない。
ここでは入力チェックをしていない事に注意
code:substr.sh
# $1 文字列
# $2 開始位置(0から)
# $3 桁数
substr()
{
then
printf '%s' "$1" | sed -e 's/^\(.{,'$3'}\).*$/\1/'
else
printf '%s' "$1" | sed -e 's/^.\{'$2'\}\(.{,'$3'}\).*$/\1/'
fi
}
Keyword:部分文字列の取得