Estoy tratando de usar un archivo que contenga direcciones IP como base para buscar a través de un archivo de configuración de firewall de Cisco. Normalmente, usaría algo como:Cómo grep un archivo usando los parámetros de búsqueda de otro archivo
for i in $(cat ip.file); do grep $i fw.config; done
Pero al hacerlo no devuelve absolutamente nada. Si pongo la secuencia de comandos anterior en un archivo y ejecutarlo con la fiesta -xv banderas, cada línea vuelve algo como esto:
+ 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 es exactamente lo que quiero que suceda, pero no recibir nada de este comando.
Conozco la opción grep -f, pero eso tampoco devuelve nada. No soy un codificador experimentado, por lo que podría pasar por alto algo obvio.
esto no va a arreglar el problema, pero siempre hay que citar las variables cuando son argumentos a un comando. No es una mala idea usar '--' para detener el procesamiento de opciones cuando uno de los argumentos es también una variable. 'grep -" $ i "fw.config' –