【发布时间】:2011-04-07 02:05:48
【问题描述】:
我正在尝试使用包含 IP 地址的文件作为搜索 Cisco 防火墙配置文件的基础。通常,我会使用类似的东西:
for i in $(cat ip.file); do grep $i fw.config; done
但这样做绝对不会有任何回报。如果我将上面的脚本放入一个文件并使用 bash -xv 标志执行它,每一行都会返回如下内容:
+ for i in '`cat ip.file`'
+ grep $'1.2.3.4\r' fw.config (each IP address is different)
grep 1.2.3.4 fw.config 正是我想要发生的事情,但我从这个命令中没有得到任何回报。
我知道 grep -f 选项,但这也没有返回任何内容。我不是一个经验丰富的编码员,所以我可能会忽略一些显而易见的事情。
【问题讨论】:
-
这不能解决您的问题,但是当变量是命令的参数时,您应该始终引用它们。当参数之一也是变量时,使用
--停止选项处理也不是一个坏主意。grep -- "$i" fw.config