Tengo una fuente de una página y necesito obtener todas las etiquetas de este archivo. El orden es importante. Necesito scripts externos e integrados. La etiqueta debe incluirse en la salida. Estoy buscando una herramienta de consola Linux.
Intenté buscar pero no pude encontrar nada, hasta el punto que usé jQuery para obtener esta información y la pegué en un archivo. Pero esta salida tiene una codificación extraña, por lo que necesito analizarla de forma tradicional.
Ejemplo: Entrada:
<html>
<head>
<script src="script1.js"></script>
<script src="script2.js"></script>
<script>alert('hello');</script>
</head>
<body>
<div id="main">...</div>
<script src="footer.js">
</body>
</html>
Producción:
<script src="script1.js"></script>
<script src="script2.js"></script>
<script>alert('hello');</script>
<script src="footer.js">
Segundo ejemplo, genera solo atributos src.
script1.js
script2.js
inline script
footer.js
Respuesta1
Puede usar grep
para eso y su único parámetro coincidente ( -o
), por ejemplo:
$ grep -o "<[^>]*>" <(curl -s http://example.com/)
Esto imprimirá todas las etiquetas html, incluido el pedido.
Para incluir solo <script>
etiquetas, intente (cambie index.html
con su archivo):
$ grep -Eo "<script.*(</script>|>)" index.html
Para obtener solo los nombres de los archivos (del src
atributo), puede ampliar agregando otro grep
, por ejemplo:
$ grep -Eo "<script.*(</script>|>)" index.html | grep -o '"[^"]*"' | tr -d '"'
La sintaxis anterior no le ayudará con muchas variaciones diferentes de código html, por lo tanto, para soluciones más complejas,usando expresiones regulares para analizar htmlEn general, no se recomienda, por lo tanto, debe utilizar las herramientas adecuadas (idioma de su preferencia o consulte estosherramientas de concha).