У меня есть исходник страницы, и мне нужно получить все теги из этого файла. Порядок важен. Мне нужны как внешние, так и встроенные скрипты. тег должен быть включен в вывод. Я ищу консольный инструмент Linux.
Я пробовал искать, но ничего не нашел, вплоть до того, что использовал jQuery, чтобы получить эту информацию и вставить ее в файл. Но этот вывод имеет какую-то странную кодировку, поэтому мне нужно разобрать его традиционным способом.
Пример: Ввод:
<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>
Выход:
<script src="script1.js"></script>
<script src="script2.js"></script>
<script>alert('hello');</script>
<script src="footer.js">
Второй пример: вывод только атрибутов src.
script1.js
script2.js
inline script
footer.js
решение1
Для этого можно использовать grep
и его единственный соответствующий параметр ( -o
), например:
$ grep -o "<[^>]*>" <(curl -s http://example.com/)
Это позволит распечатать все HTML-теги, включая заказ.
Чтобы включить только <script>
теги, попробуйте (измените index.html
в своем файле):
$ grep -Eo "<script.*(</script>|>)" index.html
Чтобы получить только имена файлов (из src
атрибута), можно расширить, добавив еще один grep
, например:
$ grep -Eo "<script.*(</script>|>)" index.html | grep -o '"[^"]*"' | tr -d '"'
Приведенный выше синтаксис не поможет вам с множеством различных вариаций HTML-кода, поэтому для более сложных решений,использование регулярных выражений для разбора htmlв общем случае не рекомендуется, поэтому вам следует использовать соответствующие инструменты (язык по вашему выбору или ознакомиться с этимиинструменты оболочки).