2010-07-22 63 views
0

我有下面的示例文件SED + AWK +覈實線在文件

/etc/sysconfig/network/script.sh = -exe $Builder 
    run_installation 123 44 556 4 = run_installation arg1 arg2 arg3 948 
    EXE=somthing 
    EXE somthing 

我有三個問題(我寫bash腳本)

  1. 如何通過awk或者sed如果字符串驗證在「=」字符後面存在「-exe」
  2. 如何通過sed或awk驗證字符串run_installation是否存在於行的第一行(行中的第一個字符)和「=」字符後面,如下例所示(文件)

  3. 在文件中的字符串EXE可以是 「EXE」 或 「EXE =」,如何通過sed的EXE或EXE刪除=

    我做的:

    sed s'/EXE//g' | sed s'/EXE=//g' 
    

    ,但它不是好方法在我的bash腳本中做

•我需要三個不同的答案!

利迪婭

回答

0

你不給上,如果條件1和2都沒有發現什麼做進一步的標準......

awk '/=.*-exe/{f=1;} 
/^run_installation.*=.*run_installation/{g=1} 
/^EXE/{ gsub(/EXE=|EXE/,"") } 
f && g{ print "ok" ;exit } 
' file 

上面的代碼檢查條件1和條件2和打印「確定「,當兩個都找到。爲了說明的目的,添加EXE代替條件3。國家更清楚你想在下一次做,並顯示您的預期輸出

要單獨驗證他們什麼,

awk '/= -exe/{print "found"}' file 
awk '/^run_installation.*=.*run_installation/{print "found"}' file 
+0

對不起它應該有三個答案,不是一個答案 – lidia 2010-07-22 07:17:38

+0

所有的情況下你能請編輯再爲不同三個答案 – lidia 2010-07-22 07:19:40

+0

3回答?我不明白。所有的條件都可以通過一個awk過程完成。通過示例輸入和輸出樣本來定義和清楚地說明你想要做什麼。 – ghostdog74 2010-07-22 07:25:47