替换为文件中的单词

替换为文件中的单词

我想更改</div>一个很长的文档,几乎有 2500 页,带有“索引:”一词,但它从未成功。我尝试了sed很多不同的方式,例如:

 sed '/s^[</div>]/Index:/g'

但没有成功!

请告诉我正确的命令是什么?

例子

</div>
</div>
<script src="https://cdn.pkgs.org/assets/js/main.min.js?v10"></script>
<script>
$(document).ready(function () </div> {
app.init("pkgs.org", 101);
})
</div>
</script>
</body>

我要它

Index:
Index:
<script src="https://cdn.pkgs.org/assets/js/main.min.js?v10"></script>
<script>
$(document).ready(function () Index {
app.init("pkgs.org", 101);
})
Index:
</script>
</body>

答案1

如果删除方括号,使用%代替/作为sed分隔符来停止与/in混淆</div>,将 s 之前的分隔符移动到它之后,并删除插入符号,则正则表达式可以工作:

sed 's%</div>%Index:%g'

答案2

我看到三个问题:

  1. 您的 sed 命令的语法错误。我相信您的意思是搜索和替换命令,因此 's' 必须位于斜杠之前:

    sed 's/^[</div>]/Index:/g'

  2. 事实上,您的搜索字符串中包含斜线 ('/') 字符,这会使 sed 混乱。因此,您可以使用反斜线转义斜线:

    sed 's/^[<\/div>]/Index:/g'

    或使用另一个字符作为分隔符:

    sed 's|^[</div>]|Index:|g'

  3. [</div>]您在搜索中使用方括号 ( ),这不是您想要的。该表达式与方括号内的任何字符匹配一次。尝试以下不带方括号的命令:

    sed 's|^</div>|Index:|g'

相关内容