0
grep (GNU grep) 2.14

こんにちは、

選択した単語でフィルタリングしたいログ ファイルがあります。ただし、たとえば、多くのフィルターをかける傾向があります。

tail -f gateway-* | grep "P_SIP:N_iptB1T1"

これは、次のような単語も検索します。

"P_SIP:N_iptB1T10"
"P_SIP:N_iptB1T11"
"P_SIP:N_iptB1T12"
etc

ただし、1. grep が 11、12、13 などを取得した後は何も表示したくありません。

ご提案いただきありがとうございます。

4

4 に答える 4

2

単語が 1 で終わるように制限できます。

tail -f gateway-* | grep "P_SIP:N_iptB1T1\>"

これは、一致するケースが「P_SIP:N_iptB1T1」のみであると仮定して機能します。ただし、P_SIP:N_iptB1T1x から抽出して 1 回だけ表示する場合は、最初の一致のみを表示するように制限する必要があります。

于 2013-04-30T04:10:12.343 に答える
1
grep -o "P_SIP:N_iptB1T1"
-o, --only-matching PATTERN に一致する行の部分のみを表示します

より詳しい情報

于 2013-04-30T03:41:24.850 に答える
1

例のように行に引用符が含まれている場合は-E、grep でオプションを使用し、終了引用符を\". 例えば:

grep -E "P_SIP:N_iptB1T1\"" file

これらの引用符がテキスト ファイルになく、単語の後に空白スペースまたは末尾行がある場合は、これらも一致させることができます。

# The word is followed by one or more blanks
grep -E "P_SIP:N_iptB1T1\s+" file

# Match lines ending with the interesting word
grep -E "P_SIP:N_iptB1T1$" file
于 2013-04-30T04:12:08.563 に答える