使用PHP文件中的sed命令将chracter替换为新行


replace chracter with new line using sed command in PHP file

我正在处理PHP文件。我处理一些文本文件,并希望替换每次出现的"<"用一条新线路。

我正在使用sed命令:

shell_exec("C:''cygwin64''bin''bash.exe --login -c 'sed -i -r ''s/'< '/''n'/'' $text_files_path/diffFile.txt 2>&1'");

但是,它不起作用。

我使用的是:

shell_exec("C:''cygwin64''bin''bash.exe --login -c 'sed -i -r ''s/.{2}//'' $text_files_path/diffFile.txt 2>&1'");

删除每行的前两个字符。

和:

shell_exec("C:''cygwin64''bin''bash.exe --login -c 'sed -i -r ''s/.{2}/*/'' $text_files_path/diffFile.txt 2>&1'");

用*替换前两个字符

这两个字符是"<"。现在我想用一条新线路来代替它们。

解决方案:

我用解决问题

shell_exec("C:''cygwin64''bin''bash.exe --login -c '"sed -i -r 's/< /''r''n/' $text_files_path/diffFile.txt 2>&1'"");   

对于新行,我写了:''r''n而不是''n。非常感谢@Tom Fenech。

您需要调整引号的使用并转义换行符:

shell_exec("C:''cygwin64''bin''bash.exe --login -c '"sed -i -r 's/< /''n/' $text_files_path/diffFile.txt 2>&1'"");

我在bash命令周围使用(转义)双引号,在sed命令周围使用单引号。我还将'n更改为''n,因为反斜杠需要用双引号转义。