我想更改</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
我看到三个问题:
您的 sed 命令的语法错误。我相信您的意思是搜索和替换命令,因此 's' 必须位于斜杠之前:
sed 's/^[</div>]/Index:/g'
事实上,您的搜索字符串中包含斜线 ('/') 字符,这会使 sed 混乱。因此,您可以使用反斜线转义斜线:
sed 's/^[<\/div>]/Index:/g'
或使用另一个字符作为分隔符:
sed 's|^[</div>]|Index:|g'
[</div>]
您在搜索中使用方括号 ( ),这不是您想要的。该表达式与方括号内的任何字符匹配一次。尝试以下不带方括号的命令:sed 's|^</div>|Index:|g'