シェルスクリプトで文字列の特定の位置にある文字を取得するには?

シェルスクリプトで文字列の特定の位置にある文字を取得するには?

シェルスクリプトで文字列の特定の位置にある文字を取得するには?

ベストアンサー1

Bashで「パラメータ拡張」$ {parameter:offset:length}を使用する

$ var=abcdef
$ echo ${var:0:1}
a
$ echo ${var:3:1}
d

同じパラメータ拡張を使用して新しい変数を割り当てることができます。

$ x=${var:1:1}
$ echo $x
b

編集:パラメータ拡張なし(非常にエレガントではありませんが、それが私が最初に考えたものです)

$ charpos() { pos=$1;shift; echo "$@"|sed 's/^.\{'$pos'\}\(.\).*$/\1/';}
$ charpos 8 what ever here
r

おすすめ記事