我想调整某些文件的apache输出,这样:
<template>
<p>... something in there ...</p>
<template>... something in there ...</template>
... more stuff ...
</template>
<script>
... my script ...
export default something;
</script>
成为这个:
const template = `
<p>... something in there ...</p>
<template>... something in there ...</template>
... more stuff ...
`
... my script ...
export default something;
(这会将vue.js单个文件组件转换为ES6本机模块)
我发现我可以使用mod_sed
实现这一目标,并且在大多数情况下都可以正常工作。我可以这样替换开始<template>
和结束</script>
标签:
OutputSed "s/<template>/const template = `/g"
OutputSed "s/<\/script>/ /g"
但是我遇到很大问题的地方是中间部分。因此,我要从最后结束</template>
标记(请注意,可能有嵌套的<template>
标记)中删除。 (且仅)<script>
标签,包括标签本身。问题在于,这两个标记之间可能有任意数量的换行符和/或空格。因此,现在我有了可以用mode_sed
进行的多行替换,但是我发现的所有示例都无法在apache上下文中使用,到目前为止,我似乎什么都无法运行。
任何帮助都将不胜感激!