指定した位置の文字列を抜き出す・echoコマンド †以下の関連資料にcut, exprを利用した指定した文字列の取得方法を記述しています。 関連資料 †man bashの抜粋 †man bashでマニュアルを見てみると以下の記述があります。(man bashの抜粋) ${parameter:offset} ${parameter:offset:length} 部 分文字列展開。 parameter を展開したものから最大 length 文字を 取り出します。先頭の文字は offset で指定します。length を省略 す る と、 offset で指定した文字を先頭にして、 parameter の残り全部 が含まれる部分文字列に展開します。 length と offset は算術式です (後述の 算術式評価を参照)。 length の評価結果は 0 以上の数でなけ ればなりません。 offset を評価すると 0 未満の数になる場合、こ の 値 は parameter の 値の末尾からのオフセットとして使われます。 parameter が @ ならば、結果は offset から始まる length 個の位 置 パ ラメータになります。 parameter が @ または * のインデックスが 付いている配列名ならば、結果は配列の ${parameter[offset]} を先頭 とする要素 length 個となります。位置パラメータを使う場合以外は、 部分文字列のインデックスは 0 から始まります。位置パラメータの 場 合には、インデックスは 1 から始まります。 echoコマンドをつかって指定範囲の文字列を抜き出す †echoコマンドでも指定した範囲の文字列を抜き出すことができます。 指定した位置から最後まで †0から始まるので、1を指定するとELLOが表示されます。 $ v='HELLO' $ echo ${v:1} ELLO 指定した位置から指定した位置まで †指定した開始位置が1(2文字目)から3文字取得を実行した時の出力です。 $ v='HELLO' $ echo ${v:1:3} ELL 以上のように、echo と bashの機能を利用すれば簡単に指定した範囲の文字列を抜き出すことができます。 |