sed php.ini memory_limit

以下工作很好:

phpmemory_limit=256M #or what ever you want it set to sed -i 's/memory_limit = 16M/memory_limit = '${phpmemory_limit}'/' /etc/php5/apache2/php.ini 

如果memory_limit设置为16M,但是我发现在某些发行版中它不默认为16M,而是默认为32M。 所以我的问题是如何让我的SED帐户,并取代任何数字是$ {phpmemory_limit}?

你可以使用正则expression式 – 例如:

 phpmemory_limit=256M #or what ever you want it set to sed -i 's/memory_limit = .*/memory_limit = '${phpmemory_limit}'/' /etc/php5/apache2/php.ini 

假如说:

  • 值总是以Mb指定。
  • 您希望保留尾随评论。
  • 你不希望修改任何评论的发生。
  • phpmemory_limit只包含一个整数。

     sed -ri 's/^(memory_limit = )[0-9]+(M.*)$/\1'${phpmemory_limit}'\2/' /etc/php5/apache2/php.ini 

这使用..

  • 反引用缩短正则expression式并保留评论。
  • sed的扩展正则expression式的支持。
  • 重要的是按照这个顺序指定缩短的选项,否则将使用文件扩展名r创build一个备份。