2016-04-22 15 views
0

特定の文字を選択するためのgrep(ing)ログファイルがあります。Grep正規表現で10文字のみを選択する

ログファイルのパターンは、この

Some Random string.... Message Sent [10 character -- 

のように見える私は[との間に存在する唯一の10文字の文字列に興味がある - 私が正常に管理している

このような正規表現を作成する

"Message Sent \[.\{10\} --" 

私は十字チェックをしています上の正規表現hereを編集しました。

しかし残念ながら正規表現は、任意の出力

grep -o "Message Sent \[.\{10\}) --" log/development.log 

が得られない。しかし、私は10文字が、上記の正規表現収率'Message Sent [' + 10 character + --

手がかりで主に興味がありますか?

答えて

3

以前に一致した文字を破棄するには、\Kパターン、Perl-regexのパターン)を使用します。ただ、使用sedの

grep -oP 'Message Sent \[\K.{10}(?= -+)' log/development.log 

または

grep -oP 'Message\s+Sent\s+\[\K.{10}(?=\s+-+)' log/development.log 

DEMO

+0

はあなたの '\ K 'の定義のためのリンクを行います。 – Viren

+0

ここにhttp://www.regular-expressions.info/keep.html –

+0

素晴らしいそれを共有していただきありがとうございます。 – Viren

0

$ sed -r -n 's/.*Message Sent \[(.{10}).*/\1/p' file 
10 charact 
関連する問題