我正在处理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
,因为反斜杠需要用双引号转义。