このエントリーをはてなブックマークに追加


指定した位置の文字列を抜き出す・echoコマンド

以下の関連資料にcut, exprを利用した指定した文字列の取得方法を記述しています。
echoコマンドでも同様に指定した範囲の文字列を抜き出すことができます。
実際には、echoコマンドの機能では無くbashの機能になります。


関連資料

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の機能を利用すれば簡単に指定した範囲の文字列を抜き出すことができます。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:27:19