嗨,大家好,我需要使用Linux腳本的幫助。使用變量替換每次發生的模式
這是一個示例輸入:
Login=Testtt/123 Password=Testtt/123 Login=eJwQwq12 Password=OjeEor/Kd
首先,我用grep然後AWK使用下面的代碼
passStr=grep 'Passsword' test.param | awk -F= '{print $2}'
所以那裏我得到了Testtt123然後把它搜索的模式使用passStr進入變量。
然後我把字符串替換成使用
passNew=ThisIsATest=
現在我需要更換的字符串稱爲Testtt123第二次出現是在passStr
和使用變量passNew
ThisIsATest=
另一個變量
我只有這個代碼,但它取代了所有出現的字符串。
sed /$passStr/{s/$passStr/$passNew/} test.param
這裏的問題是,第二次出現位於不同的線路。 還有其他的密碼發生,使我很難使用awk,因爲passStr將有兩個可能的值。我只需要第一個密碼。
接下來是有次在該密碼的值包含斜槓(改變樣品輸入)
輸出應該像
Login=Testtt123 Password=ThisIsATest= Login=eJwQwq12 Password=OjeEor/Kd
任何幫助,我能得到什麼?
顯示輸入樣本。 – John1024 2014-10-01 03:07:12
您已經告訴了我們很多關於您如何解決您的問題的建議,但還不足以說明您的問題實際上是我們真正幫助您的。發佈一些示例輸入和預期輸出,包括您認爲難以處理的情況,例如在不希望它們匹配的行上搜索字符串,搜索其他字符串的一部分的字符串等。 – 2014-10-01 13:23:43