grepを使用して141.8の行を無視する方法はありますか。 ..それらに含まれていますが、GETがある行を取得しますか?今私はこれを持っていますが、私は何か間違っている必要があります
Sudo grep -v '^141.8.83.213' && "GET" /home/tsec/prototype/logs/glastopf.log | sort -k4,4 | tac | sort -uk4,4 | sort -k1,2 | tail -n 10 > /home/tsec/prototype/logs/ext$
これはログに含まれるものです
2016-04-20 13:30:59,818 (glastopf.glastopf) 141.8.83.213 requested GET /favicon.ico on e1f841a092e9:80
2016-04-20 13:31:01,817 (glastopf.glastopf) 141.8.83.213 requested POST /index on e1f841a092e9:80
2016-04-20 13:31:01,855 (glastopf.glastopf) 141.8.83.213 requested GET /style.css on e1f841a092e9:80
2016-04-20 13:31:01,883 (glastopf.glastopf) 141.8.83.213 requested GET /favicon.ico on e1f841a092e9:80
2016-04-20 16:39:55,713 (glastopf.glastopf) Initializing Glastopf 3.1.3-dev using "/data/glastopf" as work directory.
2016-04-20 16:39:55,797 (glastopf.glastopf) Connecting to main database with: sqlite:///db/glastopf.db
2016-04-20 16:39:55,834 (glastopf.glastopf) Glastopf started and privileges dropped.
2016-04-20 17:54:33,857 (glastopf.glastopf) 62.210.252.43 requested GET / on de96c7b4104d:80
2016-04-20 17:54:34,101 (glastopf.glastopf) 62.210.252.43 requested GET /HNAP1/ on de96c7b4104d:80
2016-04-20 22:06:20,265 (glastopf.glastopf) Initializing Glastopf 3.1.3-dev using "/data/glastopf" as work directory.
2016-04-20 22:06:20,399 (glastopf.glastopf) Connecting to main database with: sqlite:///db/glastopf.db
2016-04-20 22:06:20,446 (glastopf.glastopf) Glastopf started and privileges dropped.
2016-04-20 22:33:23,136 (glastopf.glastopf) 74.91.23.109 requested GET / on 11bbb1d43c02:80
最終的に、文字列にGETを含むエントリを取得しますが、141.8.83.213 IPを持つエントリは無視します。
2つのgrep
sを使用します。
grep "GET" /home/tsec/prototype/logs/glastopf.log | grep -vF 141.8.83.213 | ...
man grep
から:
-F Match using fixed strings. Treat each pattern specified as a
string instead of a regular expression. If an input line
contains any of the patterns as a contiguous sequence of bytes,
the line shall be matched. A null string shall match every line.
-v Select lines not matching any of the specified patterns. If the
-v option is not specified, selected lines shall be those that
match any of the specified patterns.
したがって、-F
を使用すると、.
をエスケープする必要がなくなります。 -v
は、grep
に一致を反転するよう指示する古典的な方法です。
Awkはregexの論理演算子を許可しているため、match GETおよびipを含まない行も一致すると言えます
awk '/GET/&&!/141\.8\.83\.213/' log. txt