【问题标题】:How to add lines using command line如何使用命令行添加行
【发布时间】:2014-10-28 12:15:34
【问题描述】:

我有一个 HTML 文档,我想在正文标签之后自动插入一个图像:

html:

<body>
    <div class="indexHeader"><a href="allclasses-frame.html" target="packageFrame">All Classes</a>
</div>
....

我想在&lt;body&gt; 标签之后使用命令行添加一个图像,结果如下:

<body>
    <img src="resources/logo_small.png" alt="My image" height="80" />
    <div class="indexHeader"><a href="allclasses-frame.html" target="packageFrame">All Classes</a></div>

如何在命令行中实现这一点? 注意:我使用的是 Windows

这些是我的尝试: 第一次尝试:

awk -v image='<img src="resources/logo_small.png" alt="My image" height="80" />' '1; /<body>/ {print image}' overview-frame.html

结果: 系统找不到指定的文件。

第二次尝试:

sed 's?<body>?<body>\n\t<img src="resources/logo_small.png" alt="My image" height="80" />?g' overview-frame.html

结果: 系统找不到指定的文件。

【问题讨论】:

  • 你尝试过实现它吗?我们希望看到您的尝试。 (无论如何,检查 awk 和 sed)
  • 是的,但他们都没有让我更接近解决方案。这就是为什么我没有发布我的尝试。

标签: html shell command-line command


【解决方案1】:

为此,您可以这样使用sed

sed 's?<body>?<body>\n\t<img src="resources/logo_small.png" alt="My image" height="80" />?g' filename

其中filename 是包含html 代码的文件。上一行将在屏幕上打印更新的文件,但不会将修改保存在文件中:使用sed-i 选项来执行此操作。

此解决方案非常针对您暴露的问题,如果您想要更复杂的修改,请阅读 man sed 或 google 获取 sed 示例。

【讨论】:

  • 不工作...它说: sed 的? src="resources/logo_small.png" alt="My image" height="80" / 0?g' 系统找不到指定文件。可以和上面一样吗?打开和关闭标签?
  • 您是否正确地将filename 替换为包含html 代码的文件名?它适用于我的机器。
  • 我写的是同一行: sed 's??\n\t?g' overview-frame.html 但它不起作用...
  • 好吧,我不明白为什么它不能在你的机器上工作,但在我的机器上工作......对不起。也许我们应该比较我们的 OS/interpreter/sed 的版本...
  • 可能是不同版本的 Sed... 无论如何,谢谢!您的回答使我找到了正确的解决方案。
【解决方案2】:

我终于可以使用这段代码让它工作了:

sed -i "s#<body>#<body>\n\t<img src='resources/logo_small.png' alt='FacePhi Biometria' height='80' />#" filename

【讨论】:

    猜你喜欢
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 2019-04-04
    • 2011-12-31
    • 2020-08-25
    相关资源
    最近更新 更多