スポンサーリンク

substr()の使い方

下記の形式でsubstr()を使います。
文字列StrのN文字目からL文字切り出して、substr()の戻り値として返します。
awkは0オリジンではなく、先頭の開始文字は1文字目となることに注意が必要です。

substr(Str:対象文字列, N:切り出し開始位置, L:切り出す文字列の長さ)

例えば、1フィールド(列)目の3文字目から3文字切り出したいときには、下記のように書きます。
変数numに、切り出した結果が格納されます。

サンプルコード

サンプルコードです。
in.txtの中身は下記のようになっています。1フィールド(列)目の”id”と”=”の文字列が、データ解析などの用途によっては不要の場合があります。
その場合、真ん中の数字のみを切り出す必要があります。

その場合、1フィールド(列)目の3文字目から3文字切り出すことで、必要な文字列が抽出できます。

実行すると、下記のように真ん中の数字のみが切り出されてprint出力されています。
1フィールド(列)目の”id”と”=”の文字列が取り除がれているのが確認できます。

スポンサーリンク

index()を使って切り出し開始位置を文字で指定する

substr()は切り出し開始位置を先頭からの文字数で指定します。

index()を組み合わせて使うことで、切り出し開始位置を文字で指定することができるようになります。

例えば、”0″の文字列を検出した最初の位置から3文字分だけ切り出したい場合は、下記のように書くことができます。

index()は、対象文字列を先頭から検索し、検索文字列が検出された最初の位置を戻り値として返します。



index()とsubstr()を組み合わせて使う方法については、下記の記事を書いています
よろしければ参考にしてください。

参考:awkでsubstr()の切り出し開始位置をindex()で指定する方法

スポンサーリンク