substr = 文字列の一部を取り出す - AWK
○(文字数)Gawk on Windows ○(文字数)Gawk ○(バイト数)mawk32 ○(バイト数)Mawk ○(バイト数)awk
文字列の一部を取り出します。**** 書式
--------
substr( 対象文字列, 取り出し開始位置 [, 取り出す長さ] )
--------
o 対象文字列
o 取り出し開始位置 -- 先頭は 1 です。
+ 文字を数える時の単位は、処理系によって異なります。詳細は、下の通りです。
+ 負の値を指定しても、文字列の後ろから数える事はしません。JavaScriptとは異なります。
o 取り出す長さ -- 省略する事も出来ます。
+ 文字を数える時の単位は、処理系によって異なります。詳細は、下の通りです。
o 戻り値 -- 取り出した文字列
o 文字を数える時の単位は、処理系によって異なります。
+ (漢字などの全角文字が混じっている場合、長さが変わります。)
+ Gawk系は、文字数で数えます。
+ Gawk on Windows 3.1.7
+ Gawk for Windows 3.1.6
+ その他は、バイト数で数えます。
+ mawk MBCS (32bit版) 1.3.3
+ Mawk for Windows 1.3.3
+ original = the one true awk(updated May 1, 2007)
**** 使用例
--------
BEGIN {
print substr("ミクさん", 1); # ミクさん
print substr("ミクさん", 1, 2); # ミク(or ミ)
print substr("ミクさん", 3, 2); # さん(or ク)
print substr(1.234, 1, 2); # 1.
}
--------
o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。
**** 機能
o 1番目の引数に指定した文字列から、部分文字列を取り出します。
o 1番目の引数に数値を指定すると、その数値を文字列とみなして、実行します。
o 長さを省略すると、開始位置から文字列の最後までを取り出します。
o 長さに 0以下の値を指定すると、結果は空("")になります。
o 文字列の代わりに数値を指定すると、数値を文字列に変換してから使用します。
+ 長い整数を指定すると、最後の方の桁が0になったり、浮動小数点形式になります。
+ 実数を指定すると、6桁までに丸めたり、浮動小数点形式になります。
+ この動作は変える事も出来ます。詳しくは、「数値から文字列にする時に、実数を7桁以上表示させる方法」
** 処理系に依存する動作
o 文字を数える時の単位は、処理系によって異なります。
+ 文字数で数える処理系
+ Gawk on Windows 3.1.7
+ Gawk for Windows 3.1.6
+ バイト数で数える処理系
+ mawk MBCS (32bit版) 1.3.3
+ Mawk for Windows 1.3.3
+ original = the one true awk(updated May 1, 2007)
o 開始位置に 0以下の値を指定して、長さも指定する場合、それなりに動くみたいです。
+ エラーメッセージは出ませんでした。
**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3 -- バイト数で数える
o Mawk for Windows 1.3.3 -- バイト数で数える
o original = the one true awk(updated May 1, 2007) -- バイト数で数える
==
関連ページ:
▼AWKの文字列操作関数と関連機能(▼ABC順)
▼AWKプログラムを書く(▼ABC順)
▼AWK
▼制作メモ
> int = 実数や文字列を整数化する
strtonum = 10進数、8進数、16進数の文字列を数値に変換する
split = 文字列を分割する
+
文字列から文字を1つずつ取り出す
文字列を組み立てる
(2010年6月10日追加。数値を指定した時の動作)