М4: Как удалить начальные пробелы из сценария, а затем файл? - PullRequest
1 голос
/ 08 июня 2019

Если у меня есть сценарий m4 с большим количеством команд:

define(this, that)
define(or,this)
define(other,thing)

И я звоню:

$: m4 script.m4 my_file

Вывод:

# N newlines for the N commands in the script
# first line of my file

Можно ли подавить N newlines, возникающее в результате чтения сценария при вызове m4, или мне нужно обернуть это в некоторый набор команд вызова (например, sed или grep)?

1 Ответ

1 голос
/ 08 июня 2019

Макрос dnl можно использовать для удаления новых строк для define с.Например, из этого учебного пособия :

Сам макрос определения - включая два его аргумента - расширяется до пустой строки, то есть не производит вывода.Однако символ новой строки в конце определения AUTHOR будет отражен на выходе.Если пустая строка, добавленная к выводу, является проблемой, то вы можете подавить ее с помощью макроса «delete to newline»:

 define(AUTHOR, W. Shakespeare)dnl

Между концом макроса и dnl нет пробела: если естьТогда бы это пространство было отражено на выходе.

...