2016-12-14 2 views
0

Как извлечь содержимое в тегах ниже сценария, используя команду оболочки, например grep, sed или awk?Извлечение данных с помощью sed, awk или grep

<script> 
     document.getElementById("p1").innerHTML = "API Dev :: UP"; 
     document.getElementById("p2").innerHTML = "API QA :: UP"; 
     document.getElementById("p3").innerHTML = "API Regression :: UP"; 
     document.getElementById("p4").innerHTML = "API Pre-Prod :: UP"; 
    </script> 

-Спасибо

+1

Какую конкретную информацию Вы хотели бы извлечь? Не могли бы вы привести пример желаемого результата? – AndyW

+0

Вы пытаетесь извлечь содержимое между тегами скриптов –

+0

Ваша цель - получить только этот набор строк? Причина, по которой я спрашиваю, основана на том, насколько вы хотите быть конкретным. Любой скрипт на странице будет поднят, если ваша цель - получить что-либо в блоке скрипта. Если вы видите скриншот экрана, вам, скорее всего, придется бороться с сценариями других авторов, которые также извлекаются для одного примера. –

ответ

0

На основании Вашего описания: sed '/script/d' sample.csv

использует /script/, чтобы соответствовать линии содержит строку script и d это удалить эти строки.

В качестве альтернативы используйте grep "document.getElementById" sample.csv. Используйте Grep, чтобы соответствовать шаблону (ы) Выход:

document.getElementById("p1").innerHTML = "API Dev :: UP"; 
    document.getElementById("p2").innerHTML = "API QA :: UP"; 
    document.getElementById("p3").innerHTML = "API Regression :: UP"; 
    document.getElementById("p4").innerHTML = "API Pre-Prod :: UP"; 
+0

' grep "document.getElementById" sample.csv "работает для моего сценария, поскольку у меня есть несколько других тегов, таких как html, head и body в моем фактическом html-файле. – sunil

+0

@sunil 'sed -n '/document.getElementById/p' sample.csv' будет работать :) – haifzhan

0

некоторые другие альтернативы

$ grep -Ev '</?script>' file 

или

$ gawk -v RS='</?script>' '!(NR%2)' file