2016-12-14 117 views
0

如何查找單詞「UP」並使用sed,awk或grep在下面的數據中將其替換爲「DOWN」?使用sed,awk或grep查找和替換

document.getElementById("p1").innerHTML = "API Dev :: UP"; 
document.getElementById("p2").innerHTML = "API QA :: UP"; 
document.getElementById("p3").innerHTML = "API Reg :: UP"; 
document.getElementById("p4").innerHTML = "API Prod :: UP"; 

我正在尋找一次找到/替換一條線。就像使用for loop,然後找到/替換一行。

謝謝!

+1

請解釋'一次一行' – sjsam

回答

1

這是sed 101:

sed 's/:: UP/:: DOWN/' 
+0

我們如何找到/替換一行接一行,但不是所有行同時。 – sunil

+0

你爲什麼要這麼做?它會很慢。 –

+0

如果我把上面的代碼放到我的腳本中,它會立即替換所有的代碼行:URL ='grep「document.getElementById」index.html | awk -F'''{print $ 7}'' for var in $ URL do SERVICE_STATUS ='curl -s --head $ URL |頭-n 1 |如果[[$ SERVICE_STATUS -eq「200」]] 然後 'sed's / – sunil

0
echo line | sed 's/UP/DOWN/' 

哪裏行是要替換

0

雖然@約翰 - zwinck的答案給你這樣的解決方案,如果你想有串一個更受限制的模式,做類似下面的事情

sed -E 's/(API[[:blank:]]*[[:alnum:]]+[[:blank:]]*::[[:blank:]]*)UP/\1DOWN/' 
                    filename 

哪會給你

document.getElementById("p1").innerHTML = "API Dev :: DOWN"; 
document.getElementById("p2").innerHTML = "API QA :: DOWN"; 
document.getElementById("p3").innerHTML = "API Reg :: DOWN"; 
document.getElementById("p4").innerHTML = "API Prod :: DOWN";