2013-10-09 32 views
0

我想從文件中選擇一條代碼,例如:猛砸選擇的代碼的片從文件

server foo4 {  
listen { 
    ipaddr = 127.0.0.1 
    port = 2000 
    type = auth 
    } 
authorize { 
    update control { 
      Cleartext-Password := "bob" 
      } 
    pap 
    } 
authenticate { 
    pap 
    } 
} 

從文件,其中上面的代碼並不需要所有部件,但它必須始終在以下形式:

server foo4 { } 

有沒有辦法使用這種或其他方式的正則表達式?

+0

您是否需要提取文本或只是檢測它? –

回答

1

一個的hackish確定這是說的方式:

[[ $(tr -cd '{' < input | wc -c) == $(tr -cd '}' < input | wc -c) ]] && echo "Seems ok" || echo "Not ok" 

請注意,這只是確定的{}輸入文件的數量是一樣的。它不會用於像這樣的輸入:

server foo4 {  
listen { 
authorize { 
    } 
    } 
authenticate { 
    pap 
    } 
} 
+0

command grep「[[$(tr -cd'{' Adam

+0

@Adam將命令行中的'input'替換爲您的文件名。 – devnull

+0

@Adam爲什麼你要插入'grep'? – devnull