【问题标题】:The mistake in find and sed command in linux?linux中find和sed命令的错误?
【发布时间】:2017-04-14 21:21:52
【问题描述】:

我想向我的网站添加一些脚本。
但问题在于:网站包含数百个 html 文件。
所以我需要创建一些命令来在body标签之后插入代码。我该怎么做?

find . -name '*.html' exec sed -i 's/<\/body>/<script src="1.js"><\/script><\/body>/g' {} \;

但它不能工作。 请修复此命令

【问题讨论】:

  • 有什么错误吗?还有一个错字。您在执行之前缺少-
  • 不。在我的服务器上的 ubuntu 上完美运行。但在其他 - 没有。
  • 如何在某行之后添加 。我忘记了这个标志

标签: linux sed find command


【解决方案1】:

这也适用于我:

find * -name "*.html" | xargs -L1 -I{} sed -i 's/<\/body>/<script src="1.js"><\/script><\/body>/g' {}

变化:

  • 将路径 . 替换为“*”
  • 'xargs' 工具从标准输入获取所有行,并为每一行单独执行命令,并有可能将该行作为命令中的参数传递,所以
  • 在这种情况下,这与find -cmd 的方法相同,但通常会打开另一种可能性(查看 xargs 手册)。

【讨论】:

    【解决方案2】:

    命令中有错误 - 将 exec 替换为 -exec 应该没问题。

    find . -name '*.html' exec sed -i 's/<\/body>/<script src="1.js"><\/script><\/body>/g' {} \;
    

    【讨论】:

      猜你喜欢
      • 2015-12-02
      • 1970-01-01
      • 2015-08-02
      • 2021-11-12
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多