文字クラス


[クラス] 文字クラス

echo '赤色 緑色 青色 青春' | \
  egrep --only-matching '[赤青]色'
赤色
青色

エスケープ不要

.などたいていの記号

echo 'my.js
myjs' | egrep '[.]js'
my.js

例外: ^ - ]

echo '- ^ ]' | egrep --only-matching '[]^-]'
-
^
]

[^クラス] 否定文字クラス

echo '赤色 緑色 青色 緑化' | \
  egrep --only-matching '[^赤青]色'
緑色

- 文字範囲

文字範囲の例

echo '0aAぁあァア' | \
  egrep --only-matching '[ぁ-ん]'
ぁ
あ

[:既定クラス:]

英数字

既定クラスを複数使うと

echo '0Aぁaあァア' | \
  egrep --only-matching '[[:lower:][:digit:]ア]'
0
a
ア

否定文字クラスで使うと

echo '0Aぁaあァア' | \
  egrep --only-matching '[^[:lower:][:digit:]ア]'
A
ぁ
あ
ァ

記号など

# -eで特殊文字(\t)(タブ)を有効に
echo -e 'a x
b\ty' | \
  egrep --only-matching '[ab][[:blank:]][xy]'
a x
b    y
echo "! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ \` { | } ~" | \
  egrep --only-matching '[[:punct:]]'
# 全部マッチ