文字列の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でより正規表現を読む: