我一直在尝试使用sed从PHP文件中删除一段代码,即在这两个标记之间: // istart 和 // iend 。应删除标记之间的代码和标记本身。我的想法是递归地做,所以我可以为几个文件做到这一点。
所以,我已经获得了这个RegEx:/\/\/istart([\s\S]*?)\/\/iend/
。
您可以在此处查看:https://regex101.com/r/sQ2bA0/2
但是,当我运行 sed 命令时,该文件没有任何反应。我已经尝试过几种方式,但总是没有成功。
sed -i 's/istart([\s\S]*?)\/\/iend//g' test.php
sed -i '1s/\/\/istart([\s\S]*?)\/\/iend//' test.php
我做错了什么?
感谢您的帮助,谢谢!
答案 0 :(得分:1)
您可以使用此sed
:
sed '/\/\/istart/,/\/\/iend/{s/\/\/istart.*$//p; s/^.*\/\/iend//p; d;}' file
答案 1 :(得分:0)
CarlosMaia!
试试这个:
"\/\/istart{1,}(.*\n)+.*\/\/iend"
但是你需要在" // istart"之间加一条线。和" // iend"
最好的问候!!