シェルスクリプトで数値が文字列内のパターンと照合する方法
シェルでは正規表現を使って文字列内の数値にマッチさせることができます。grepコマンドを使ってマッチングを行うことが可能で、その構文は次のようになります。
grep -oE '[0-9]+' 文件名
なお、-oオプションはマッチ箇所のみ出力するオプションで、-Eオプションは拡張正規表現を使用するオプションです。'[0-9]+’は、1桁以上の数字をマッチする表現です。
例えば、test.txt というファイルがあって、その内容は次のとおりです。
abc123def456ghi789
提示したコマンドを使って文字列内の数字を一致させることができます:
grep -oE '[0-9]+' test.txt
ネイティブな日本語で言い換えると次のようになります。
123
456
789
grepコマンド以外にも、sedコマンドも置換や検索操作を行うことができます。sedコマンドを使って文字列内の数値を別の内容に置換することができます。例えば、文字列内の数値を文字「x」に置換したい場合、以下のコマンドを使用できます。
sed 's/[0-9]/x/g' 文件名
例えば、test.txt内の数値を「x」に置き換える:
sed 's/[0-9]/x/g' test.txt
結果を出力します
abcxxxdefxxxghixxx