如何使用m4为每一行添加前缀

时间:2017-11-07 02:06:04

标签: regex m4

我使用m4处理程序文件(实际上是汇编程序)。 我可以使用

来抑制线条
changequote({,})dnl
define({_SUPPRESSED}, )dnl
_SUPPRESSED({
jan
piet
})

现在我想将行更改为汇编注释而不是仅仅 抑制它们:

; jan
; piet

这是可能的m4,例如使用patsubst? 怎么办呢?

注意: 尽管进行了大量实验,但我并没有进行管理。例如。以下失败。

define({pie}, {patsubst($1,{\n},{\n;})})

1 个答案:

答案 0 :(得分:1)

define(`pie',`patsubst(`$1',`^.*$',`; &')')
pie(`jan
piet')

请注意patsubst周围的字符串分隔符(在pie的定义中)!如果没有它,m4会在阅读时展开patsubst(而非使用)pie的定义。使用分隔符时,它将是一个字符串,仅在调用pie宏时才会展开。

当然,您可以使用{}作为字符串分隔符。