文字列操作をしていると、大文字小文字の変換が必要な場合があるかと思います。
awkではtolower()/toupper()が用意されています。

スポンサーリンク

tolower()の使い方

※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

スポンサーリンク