簡體   English   中英

使用sed替換

[英]Using sed to replace <? with <?php

我正在嘗試以編程方式替換<? 在一堆文件中使用<?php ,但我的sed正則表達式並不像我預期的那樣。 你能告訴我它有什么問題嗎?

我在命令行測試它:

$ sed -e 's/<\?/<\?php/g'
<?
<?php?<?php
d
<?phpd<?php

我不認為你需要逃脫嗎?:

sed -e 's/<?/<?php/g'

您無需在替換中轉義后引用。

sed 's#<\?#<?php#'

在管道中,糾正加倍的PHP:

sed 's#<\?#<?php#g' | sed 's#phpphp#php#g'

這也將跳過與<?=$variable匹配:

sed -e 's/<?\([^=p]\)/<?php\1/g' -e 's/<?$/<?php/g'

你真的必須使用sed,還是你也可以使用perl?

perl -pi.tmp -e 's,^<\?(?!php),<?php,' *.php *.inc
rm *.tmp

我正在使用負面<?phpphp ,以避免在文件已經以正確的字符開頭的情況下生成<?phpphp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM