linux - 如何在linux命令中替换多个文件中的字符串

标签 linux bash file replace command

我需要替换一个文件夹中很多文件中的一个字符串,只能通过 ssh 访问服务器。我该怎么做?

例如我想替换所有包含代码的文件

<script src='http://cdn.adplxmd.com/adplexmedia/tags/xbanner/xbanner.js?ap=1300' type='text/javascript'></script>

我想用我的名字替换它:sultan

我做这样的事情:

sed -i 's/<script src='http://cdn.adplxmd.com/adplexmedia/tags/xbanner/xbanner.js?ap=1300' type='text/javascript'></script>/sultan/g' *

但问题是我在 linux 命令中看到错误消息:

sed: -e expression #1, char 20: unknown option to `s'

我该如何解决这个问题?

最佳答案

有两个错误:

  1. 斜杠在调用 sed 时用作定界符,因此需要解决这个歧义
  2. 您在搜索词中使用了单引号,但也将 sed 参数括起来。

你可以尝试这样的事情:

sed -i "s|<script src='http://cdn.adplxmd.com/adplexmedia/tags/xbanner/xbanner.js?ap=1300' type='text/javascript'></script>|sultan|g" *

关于linux - 如何在linux命令中替换多个文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47954475/

相关文章:

linux - 如何在父 shell 和子 shell 之间使用相同的 bash 变量

android - 为什么 Environment.getExternalStoragePublicDirectory 在某些设备(自 2011 年初以来专门制造)中不起作用?

linux - 程序如何知道它的输出将被重定向?

iphone - 如何检测图像中的任意 4 边多边形并将其调整为矩形?

bash - 如果 errexit 打开,我如何运行可能会失败的命令并获取其退出代码?

bash - 在 sh shell 上使用 <<< 会引发错误,而不是在 bash 中

bash - 要检查 bash 脚本是以 root 还是以普通用户运行的?

java - 如何使用GridFSInputFile和GridFS而不在MongoDB中添加文件并使用Java?

php - 警告 : file_put_contents(): failed to open stream: Permission denied

linux - Chromedriver 无法在 AWS EC2 上打开 chrome 浏览器