Sed删除bash脚本中大括号之间的行

Sed删除bash脚本中大括号之间的行,bash,sed,Bash,Sed,我试图删除带有大括号的脚本中的注释和空行。 当文件没有大括号时,下面的代码可以很好地工作,但是如果它有大括号,那么代码只会删除注释并在其位置留下空格 sed -e 's/#.*$//' -e '/^$/d' file >> file 输出结果在不删除空白行< /P>的情况下 more stuff above here location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass

我试图删除带有大括号的脚本中的注释和空行。 当文件没有大括号时,下面的代码可以很好地工作,但是如果它有大括号,那么代码只会删除注释并在其位置留下空格

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

输出结果在不删除空白行< /P>的情况下

 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;
   }
 }

谢谢

您的脚本在zsh中运行得非常好。 试试这个

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

你试过sed-e的/#.*$/'-e'/^[\t]*$/d'文件>>文件吗?你的例子对我很有用。你们有DOS风格的线条结尾吗?谢谢Axel。。你的也很好用