【问题标题】:How to replace a string in multiple files in linux command如何在linux命令中替换多个文件中的字符串
【发布时间】:2018-06-05 20:57:10
【问题描述】:

我需要替换文件夹中很多文件中的一个字符串,并且只能通过 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'

我该如何解决这个问题?

【问题讨论】:

    标签: linux bash file replace command


    【解决方案1】:

    有两个错误:

    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" *
    

    【讨论】:

    • 不过要避开点。
    猜你喜欢
    • 2019-01-16
    • 2010-11-17
    • 2018-04-19
    • 2015-08-07
    • 1970-01-01
    • 2017-03-06
    • 2014-10-13
    • 2017-08-01
    相关资源
    最近更新 更多