grep出力で部分一致を隠す

grep出力で部分一致を隠す

セッションIDを抽出するための正規表現があります。

[root@docker tmp]# grep -oE "\[[0-9].+\]" logfile
[113a6d9e-7b06-42c6-a52b-7a4e4d2e216c]
[113a6d9e-7b06-42c6-a52b-7a4e4d2e216c]
[root@docker tmp]#

出力で角かっこを隠すには?

ベストアンサー1

拡張正規表現grep()を使用する代わりに、lookbehindとlookaheadで-Eperl-regex grep()を使用してください。-P

$ grep -oP "(?<=\[)[0-9].+(?=\])" logfile
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c

ここでは、プレフィックスが(?<=\[)存在することを示し、次が存在する必要があることを示しますが、一致する出力には含まれません。\[(?=\])\]

おすすめ記事