正規表現のキャラクタクラスで数字を表す方法を紹介します。
10進数の数字は、[:digit:] で表します。
16進数の数字は、[:xdigit:] で表します。
sed等で使用する場合、[[:digit:]]のようにする必要があるので注意してください。
例を見てみましょう。
まずは、10進数を@マークに変えてみます。
1 2 3 |
$ echo "kamo123TORA" | sed "s/[[:digit:]]/@/g" kamo@@@TORA $ |
続けて、16進数を@マークに変えてみます。
1 2 3 |
$ echo "kamo123TORA" | sed "s/[[:xdigit:]]/@/g" k@mo@@@TOR@ $ |
16進数は0からeまでを使用するため、小文字のaと大文字のAが16進数とみなされています。