文字列操作をしていると、大文字小文字の変換が必要な場合があるかと思います。
awkではtolower()/toupper()が用意されています。
スポンサーリンク
tolower()の使い方
※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-
参考:awk入門-使い方まとめ一覧-
下記の形式でawkのtolower()を書きます。
変換対象文字列の大文字が小文字に変換され、変換後の文字列を戻り値として返します。
全角については処理系によって異なるので、変換対象文字列は半角アルファベットにするのが無難です。
tolower( 変換対象文字列 )
例えば、1フィールド(列)目の文字列を全て小文字にしたい場合には、下記のように書きます。
変数strに変換後の文字列が格納されます。
str = tolower( $1 )
サンプルコードです。
下記のように、大文字と小文字が混ざったin.txtがあるとします。
$ cat in.txt GhI Jkl MnO
tolower()を使い、1フィールド(列)目の文字列の大文字を小文字に変換します。
$ cat sample.awk #!/bin/sh cat in.txt | awk ' { str = tolower( $1 ) print str } '
実行すると、下記のように全て小文字になっているが確認できます。
$ ./sample.awk ghi jkl mno
スポンサーリンク
toupper()の使い方
下記の形式でawkのtoupper()を書きます。
変換対象文字列の小文字が大文字に変換され、変換後の文字列を戻り値として返します。
tolower()と同様ですが、全角については処理系によって異なるので、変換対象文字列は半角アルファベットとするのが無難です。
toupper( 変換対象文字列 )
例えば、1フィールド(列)目の文字列を全て大文字にしたい場合には、下記のように書きます。
変数strに変換後の文字列が格納されます。
str = toupper( $1 )
サンプルコードになります。
同様に、in.txtの中身は大文字小文字が混ざったアルファベットになります。
$ cat in.txt GhI Jkl MnO
toupper()を使って、1フィールド(列)目の文字列の小文字を全て大文字に変換します。
$ cat sample2.awk #!/bin/sh cat in.txt | awk ' { str = toupper( $1 ) print str } '
実行すると、下記のように全て大文字となって出力されているが確認できます。
$ ./sample2.awk GHI JKL MNO
スポンサーリンク