我想</div>在一个几乎由 2500 页组成的非常长的文档中进行更改,并带有“索引:”一词,但它从未奏效。我尝试sed了许多不同的方式,例如:
sed '/s^[</div>]/Index:/g'
Run Code Online (Sandbox Code Playgroud)
但它没有用!
你能告诉我什么是正确的命令吗?
例子
</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>
Run Code Online (Sandbox Code Playgroud)
我要它
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>
Run Code Online (Sandbox Code Playgroud)
如果删除方括号,使用%而不是/作为sed分隔符来停止与/in混淆</div>,将 s 之前的分隔符移到它之后,并删除插入符号,正则表达式有效:
sed 's%</div>%Index:%g'
Run Code Online (Sandbox Code Playgroud)
小智 5
我看到三个问题:
您的 sed 命令的语法是错误的。我相信你的意思是搜索和替换命令,所以 's' 必须在斜杠之前:
sed 's/^[</div>]/Index:/g'
您的字符串在搜索字符串中包含斜杠 ('/') 字符这一事实与 sed 混淆。所以你可以用反斜杠转义斜杠:
sed 's/^[<\/div>]/Index:/g'
或使用另一个字符作为分隔符:
sed 's|^[</div>]|Index:|g'
您[</div>]在搜索中使用了方括号 ( ),这不是您想要的。此表达式匹配方括号内的任何字符一次。尝试不带方括号的以下命令:
sed 's|^</div>|Index:|g'