在使用 sed 找到的匹配之前插入一行

问题描述 投票:0回答:1

我有以下 html 文件头元素:

<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
  <meta charset="utf-8" />
  .....
  <meta name="author" content="" />
  <title>Her skrives Tittel. Bruk stilen Title</title>
  <style>
   .....
      vertical-align: middle;
    }
    .display.math{display: block; text-align: center; margin: 0.5rem auto;}
  </style>
  <link rel="stylesheet" href="styles.css" />
  <!--[if lt IE 9]>
    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
  <![endif]-->
</head>

我想插入以下内容:

<link href='https://fonts.googleapis.com/css?family=Noto Serif rel='stylesheet'>

之前:

<link rel="stylesheet" href="./styles.css" />

我试过这个:

sed "/^<link.*styles.*/i <link href=\'https:\/\/fonts.googleapis.com\/css?family=Noto Serif rel=\'stylesheet\'>" test.html

没成功。

html sed
1个回答
-1
投票

检查您的匹配模板

/^<link.*styles.*/
它不起作用,因为这个
^
真正的字符串开头有空格。这里有两个选择:

  1. 删除
    ^
  2. 像这样添加
    [[:space:]]*
    /^[[:space:]]*<link.*styles.*/
© www.soinside.com 2019 - 2024. All rights reserved.