所以我已经解决了几个类似的问题,但我无法解决任何问题。
我目前正在尝试使用这个:
sed -i '/^<script/,/script>/{/^<script/!{/script>/!d}}' file.txt
我认为这会删除<script
和之间的所有内容,script>
但正如您可能已经猜到的那样,它不会这样做。
这是txt文件中的代码:
<script type="text/javascript">
bla bla some script bla bla
</script>
在不同的地方有多个脚本。TXT它应该删除其中的每一个。
答案1
如果要删除开始标记和结束script
标记之间的文本(其中开始标记始终位于行首),您需要做的就是:
sed -i '/^<script/,/<\/script>/d' file
当然,用于sed
这样的事情是个坏主意你应该使用合适的解析器。例如,如果您的输入文件包含嵌套块怎么办?
<script type="text/javascript">
bla bla some script bla bla
<script>
foo
</script>
</script>
但这是否是一个问题将取决于您的输入数据。