コマンドライン全体で括弧内に表示される数字のみを検索する必要があります。
たとえば、
$ 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