Sólo para incluya una alternativa más, también puede usar esto:
find "/starting/path" -type f -regextype posix-extended -regex "^.*\.(php|html|js)$" -exec grep -EH '(document\.cookie|setcookie)' {} \;
Dónde:
Y, teniendo en cuenta esto, si solo deseas rutas de archivos, puede utilizar:
find "/starting/path" -type f -regextype posix-extended -regex "^.*\.(php|html|js)$" -exec grep -EH '(document\.cookie|setcookie)' {} \; | sed -r 's/(^.*):.*$/\1/' | sort -u
Dónde
|
[tubería] enviar la salida de find
al siguiente comando después de esto (que es sed
, luego sort
)
r
opción dice sed
para utilizar expresiones regulares extendidas.
s/HI/BYE/
dice sed
reemplazar cada aparición por primera vez (por línea) de "HI" con "BYE" y ...
s/(^.*):.*$/\1/
dice que para reemplazar la expresión regular (^.*):.*$
(es decir, un grupo [cosas encerrado por ()
] incluyendo todo [.*
= uno o más de cualquier caracteres] de el principio de la línea [^
] hasta 'el primero ':' seguido por nada hasta' el fin de línea [$
]) por el primer grupo [\1
] de la regex reemplazada.
u
dice ordenar para eliminar entradas duplicadas (tome sort -u
como opcional).
... LEJOS de ser la manera más elegante. Como dije, mi intención es aumentar el rango de posibilidades (y también dar explicaciones más completas sobre algunas herramientas que podrías usar).
¿Ha considerado usar grep? http://www.cyberciti.biz/faq/grep-in-bash/ – Terrance