我正在使用 Windows 版本的grep
( qgrep
),并且我正在使用该-e
参数,但我没有得到我想要的。
我有一个正在尝试处理的路由器日志文件,具体来说我有:
SRC=18.x.x.x
或者
SRC=18y.x.x.x
日志文件有很多不同的内容SRC=a.b.c.d
,但我只关注源 IP 以 开头的位置18
。
我想要的输出是18.x.x.x
(即只是18.
IP)。
我的qgrep
命令是:
qgrep -e "SRC=18." source.file destination.file
我使用的引号与该行中的引号完全相同。
但qgrep
忽略了and 并在输出中.
给了我18
和。18x
grep
或qgrep
with选项是否-e
应该忽略.
我的论点中的 the ?
编辑:抱歉,我的qgrep
命令包括在内SRC=
,但我最初的问题中没有这个命令。
答案1
好的,就像 unix grep 一样,适用于 Windows 的 grep 和 qgrep 不允许以直接的方式在搜索字符串中包含句点 (.)。
所以这确实有效: grep -e SRC=18[.] *.log > out.txt
不需要引号,只需在句点周围使用方括号即可。