【发布时间】:2016-10-17 16:35:23
【问题描述】:
我正在尝试在 wordpress php 文件中的 define('WP_DEBUG', false); 之后添加 define('WP_MEMORY_LIMIT', '96M');。
这是我目前尝试过的:
1-
sed -b -i "/'WP_DEBUG', false);/a define('WP_MEMORY_LIMIT', '96M');" $full_path/wp-config.php;
2-
sed -i "s/'WP_DEBUG', false);/'WP_DEBUG', false);\ndefine('WP_MEMORY_LIMIT', '96M');/" $full_path/wp-config.php;
问题在于,所有的新行都被这个回车符替换了。如何在特定行之后添加新行并且没有此问题?
define('WP_DEBUG', false);^M
define('WP_MEMORY_LIMIT', '96M');
使用 sed (GNU sed) 4.2.2、Ubuntu 16.04
这是澄清问题的屏幕截图:
注意: 好的,阅读@anishsane 的答案后问题就解决了。由于原始文件(来自 wordpress.org/latest.zip)具有 CRLF(windows)行结尾,因此添加 \n 会破坏文件视图。使用 "\r\n" 解决了这个问题:
sed -i "s/'WP_DEBUG', false);/'WP_DEBUG', false);\r\ndefine('WP_MEMORY_LIMIT', '96M');/" $full_path/wp-config.php;
我不确定为什么投反对票。请解释一下,以便我澄清问题。
【问题讨论】:
-
GNU sed,在 Ubuntu 上,添加 Windows 行尾?这似乎不太可能。
-
所以每一行都有一个?所以他们在你运行 sed 之前就在那里?摆脱它们,然后运行 sed,我敢打赌它们不会被添加。并不是说我可以回答为什么它会留在原地......
-
我确定。查看截图prntscr.com/bh119k
-
好的,一定是这样的:wp-config-sample 有 CRLF 行结尾