Скажите awk
использовать -
в качестве разделителя полей и замените его пробелом по умолчанию:
awk -F - '$1=$1' file
Это не особенно удачное использование make, так как здесь нет зависимостей, но, возможно, вы добавите их позже, так что вот возможное начало:
MAINFILES = main letter report course
T = $(addsuffix.tex,$(MAINFILES))
default: ${T}
${T}:
@if [ -f "$@" -a -r "$@" ]; then latexmk -pdfxe "$@"; else :;fi
clean:
latexmk -c
.PHONY: ${T} clean
Целью по умолчанию является main.tex
и т. д. Для сборки этого файла или других нет никаких зависимостей, поэтому запускается сценарий оболочки с одной строкой -для проверки существования и читабельности файла, затем нужная команда бегать. Часть else
предназначена для того, чтобы make не останавливался с ошибкой, если файл не существует.
Существует сложность, связанная с необходимостью цели .PHONY
, иначе, когда файлы существуют, make увидит, что зависимости нет, и ничего не сделает. Это относится и к чистой цели, если у вас есть файл с именем clean
в каталоге.
Похоже, вам просто нужен простой Makefile, который знает, как сделать PDF из TeX:
all: $(patsubst %.tex,%.pdf,$(wildcard *.tex))
%.pdf: %.tex
latexmk -pdfxe $<
.PHONY: all
.DELETE_ON_ERROR: