gpt4 book ai didi

php - 在文件夹中的所有 PHP 文件中用新词替换所有包含特定词的行

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:59 24 4
gpt4 key购买 nike

假设我有一个文件夹,里面有很多 php 文件,其中一些 php 文件有一行有一个特定的词,我需要一个 linux 命令行来找到所有有这些行的文件(其中包含一个特定的词) 并用另一个词替换该行例如:

     $source = $_FILES['fupload']['tmp_name'];
$target = "upload/".$_FILES['fupload']['name'];
move_uploaded_file( $source, $target );// or die ("Couldn't copy");
$size = getImageSize( $target );

在上面作为 php 文件一部分的代码中,假设特定单词是“fupload”,我们希望在运行 linux 命令行后用“echo”替换该行,它变成了这个:

     echo
$target = "upload/".$_FILES['fupload']['name'];
move_uploaded_file( $source, $target );// or die ("Couldn't copy");
$size = getImageSize( $target );

这个过程对所有有这种情况的phph文件执行。

我找到了这段代码,但这段代码只删除了包含特定单词的行,但我需要用另一个单词替换所有这些行:

      find /var/www/website -type f -exec sed -i '/$vjfegamd/d' {} ';'

最佳答案

要仅替换第一次出现的 fupload(如您的示例代码中所示),请尝试以下操作:

find . -name '*.php' -print0 -exec sed -i.bak '0,/fupload/c echo' {} \;

c 命令用命令后面的字符串改变整行。

在编辑之前,所有文件都以 .bak 扩展名保存。

由于某些 sed 风格要求 c 后跟一个新行,您可以尝试这个以获得相同的结果:

find . -name '*.php' -print0 -exec sed i.bak '0,/fupload/s//echo/' {} \;

关于php - 在文件夹中的所有 PHP 文件中用新词替换所有包含特定词的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41771189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com