【发布时间】:2014-03-11 16:33:05
【问题描述】:
我看过很多类似的问题和答案,但都碰壁了。
我有一个这样的 XML 文件:
<blah:formProperty id="_blah" default="%HTML%">
我需要将 %HTML% 替换为大约 200 多行,如下所示:
<style>
blah
</style>
<script>
blah
</script>
使用 sed 会引发错误,因为它不喜欢多行。
awk 似乎是一个更好的选择,但不知道如何完成它。
Replace a word with multiple lines using sed? 很接近,但我无法让 awk 示例工作。如何定义 $DATA 以使 'echo $DATA' 返回多行?大量关于此的论坛主题都说只有
echo "$DATA"
将打印多行。
所以这真的是一个两部分的问题。我该如何解决我上面的问题?他们是如何让这个 awk 示例发挥作用的?
【问题讨论】:
-
如果 DATA 中有多行,那么
echo "$DATA"将打印多行!试试DATA="$(printf "multi\nline\ndata\n")" -
你在哪个平台上?并非所有
awks 都是平等的。 -
我在 Mac 上。我上面给出的链接有 echo $DATA 然后显示多行输出 - 永远无法重新创建。
-
@PaulEricson 可能是错字,因为当您打印不带引号的字符串时,换行符会转换为空格。