2016-12-14 119 views
0

如何使用shell命令(如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> 

-Thanks

+1

你想什麼具體的信息提取?你能舉一個你想要的輸出的例子嗎? – AndyW

+0

您是否試圖提取腳本標記之間的內容 –

+0

您的目標是獲取這組字符串?我問的原因是基於你想要的具體程度。如果您的目標是在腳本塊中獲取任何內容,頁面上的任何腳本都將被選中。舉例來說,如果您正在屏幕抓取,您很可能還必須與其他作者的腳本進行競爭。 –

回答

0

根據您的描述: sed '/script/d' sample.csv

使用/script/匹配線包含字符串scriptd是刪除這些行。可以使用grep "document.getElementById" sample.csv。使用grep匹配的模式(S) 輸出:

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和身體在我的實際HTML文件。 – sunil

+0

@sunil'sed -n'/document.getElementById/p'sample.csv' will work :) – haifzhan

0

一些其他的替代品

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

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