改行を置き換えるマクロを作成しようとしています。
私の最初の試みは:
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
++
次に、同様の質問を見つけまし た。m4のpatsubstで、改行をスペースに置き換えるにはどうすればよいですか。
だから、私はちょうど作った:
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
最後の選択肢も同じ問題を抱えています。助言がありますか?