[英]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.