0
我正在嘗試製作一個替換換行符的宏。如何匹配GNU M4中的換行符_properly_
我的第一個嘗試是:
define(`m4_pascal_str',`
patsubst(`$1',`^\(.*\)$',`\1++')
')
m4_pascal_str(`
11
22 33 44
')
define(zz,`
11
22 33 44
')
m4_pascal_str(`zz')
即不使用中間宏時,否則只匹配最後換行符給出正確的答案。請參見下面的結果:
++
++
11++
++
22 33 44++
++
11
22 33 44
++
後來我發現類似的問題: in m4's patsubst, how do I replace newlines with spaces?
所以,我只是做:
define(`m4_pascal_str',`
patsubst(`$1',`
',`++')
')
m4_pascal_str(`
11
22 33 44
')
define(zz,`
11
22 33 44
')
m4_pascal_str(`zz')
它提供:
++++11++++22 33 44++
11
22 33 44
的最後的選擇受到一樣的問題。 有什麼建議嗎?