16進正規表現のみが許可されます。

16進正規表現のみが許可されます。

文字列の16進表現のみを印刷するgrepコマンドを使用する正規表現が必要です。

これは私のコマンドです:

grep "0x[A-Fa-f0-9]{1,6}" test.txt

テスト.txt:

0x2a
0xF
0x1111
0x0ZZZ
0x4dz5

予想出力:

0x2a
0xF
0x1111

出力:空

どうすればいいですか?ありがとう

ベストアンサー1

この{n,m}構文は拡張正規表現セットの一部です。つまり、-Eフラグを使用してgrepでそれを有効にする必要があることを意味します。行全体が16進表現に一致するようにするには、フラグを追加するかアンカー-xを使用します。^$

grep -Ex '0x[A-Fa-f0-9]{1,6}'

または

grep -E '^0x[A-Fa-f0-9]{1,6}$'

また、文字が誤って拡張されるのを防ぐために、二重引用符を二重引用符から一重引用符に変更しました$

Stack Exchangeでより正規表現を読む:

おすすめ記事