2013-03-08 123 views
0

我試圖刪除具有大括號的腳本中的註釋和空行。 下面的代碼在文件沒有大括號的情況下效果很好,但如果它有大括號,那麼代碼只會刪除註釋並在其位置留下空格。Sed刪除大括號之間的bash腳本中的行

sed -e 's/#.*$//' -e '/^$/d' file >> file 

輸出結果如下而不zsh中刪除空行

more stuff above here 




location ~ \.php$ { 
    root  /usr/share/nginx/html; 
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include  fastcgi_params; 
    } 



location ~ /\.ht { 
    deny all; 
    } 
} 

感謝

+0

你試過'的sed -e的/#.*$//'-e '/^[\ t] * $/d' 文件>> file'? – Axel 2013-03-08 08:02:39

+0

你的例子適合我。你可能有DOS風格的行結尾? – Sjoerd 2013-03-08 08:05:36

+0

謝謝阿克塞爾..你的也很完美 – 2013-03-08 08:23:47

回答

0

腳本工作完美。 試試這個

sed -e 's/^#//' -e '/^[ \t]*$/d' 
+0

完美的作品謝謝你 – 2013-03-08 08:23:02