角かっこ内の値を取得する方法

角かっこ内の値を取得する方法

コマンドライン全体で括弧内に表示される数字のみを検索する必要があります。

たとえば、

$ cat exa.lg
02:57:25 BROKER  : Unable to open errno =. (1295)
02:57:25 BROKER  1: Unable to open (45)
02:57:25 BROKER  1: Unable to open 999. (13)
02:57:25 BROKER  : Unable to open 1295, (1098)

1295コマンドライン(BROKER : Unable to open 1295)ではなく、括弧内のエラー番号情報を取得する必要があります。

私はこれを試しました:

cat exa.lg | awk -F '[)(]' '{print $2}' | grep -E '1295|13' exa.lg
02:57:25 BROKER  : Unable to open errno =. (1295)
02:57:25 BROKER  1: Unable to open 999. (13)
02:57:25 BROKER  : Unable to open 1295, (1098)

1295しかし、2つの数字(含まれている数字)が得られました02:57:25 BROKER : Unable to open 1295

私はただ持って行きたいです02:57:25 BROKER : Unable to open errno =. (1295)

どうすればいいですか?

ベストアンサー1

正規表現に括弧を含めます。正規表現で特別な意味を持つので、エスケープする必要があります。

grep -E '\((1295|13)\)' exa.lg

おすすめ記事