【发布时间】:2021-06-21 16:08:19
【问题描述】:
我查看了一些 SO 线程,但没有一个对我的具体情况有所帮助。
我正在尝试将我从 php 5.6 接管到 php 8.0 的 PHP 应用程序更新为 php 8.0
话虽如此,有很多实例看起来像:
<?
echo ...
function
我需要找到所有<? 后面直接跟一个换行符
的情况,并将其替换为<?php(newline)
根据我读过的 SO 帖子 .. 我认为我即将接近以下内容:
find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/\<\?\n/\<\?php\n/g" {} \;
我想我很接近了.. 但我不明白为什么它不能用<?php\n 替换<?\n,因为sed 语句在没有换行符的情况下工作。但是根据THIS POST,看起来我做得对。
我做错了什么?
我尝试过的迭代:
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/\<\?\n/\<\?php\n/g" {} \;
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/<\?\n/<\?php\n/g" {} \;
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/<?\n/<?php\n/g" {} \;
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/<?\n\r/<?php\n/g" {} \;
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/<?\r\n/<?php\n/g" {} \;
【问题讨论】: