簡體   English   中英

使用正則表達式過濾apache日志文件

[英]Filter apache log file using regular expression

我有一個很大的apache日志文件,我需要對其進行過濾,僅將某個IP:192.168.1.102的日志保留在新文件中。

我嘗試使用以下命令:

sed -e "/^192.168.1.102/d" < input.txt > output.txt

但是“ / d”刪除了那些條目,我不需要離開它們。

謝謝。

使用grep呢?

cat input.txt | grep -e "^192.168.1.102" > output.txt

編輯:如下面的注釋中所述,轉義正則表達式中的點對於使其正確是必要的。 用反斜杠轉義正則表達式:

cat input.txt | grep -e "^192\.168\.1\.102" > output.txt

sed -n 's/^192\\.168\\.1\\.102/&/p'

sed比我的機器上的grep快

我認為使用grep是最好的解決方案,但是如果您想使用sed,您可以這樣做:

sed -e '/^192\.168\.1\.102/b' -e 'd'

如果正則表達式匹配,則b命令將跳過所有后續命令,因此d命令將刪除正則表達式不匹配的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM