我正在尝试使用GNU make进行一些文本处理。
plotsource: memo.md
split memo.md -l8
cat xac | awk '/[0-9].*/{print $$1" "$$6}' > heapsort
cat xab | awk '/[0-9].*/{print $$1" "$$6}' > downheat
cat xaa | awk '/[0-9].*/{print $$1" "$$6}' > upheat
join upheat downheat | join - heapsort > plotsource
我预计中间文件,xac,heapsort等将被删除,但即使在执行后也存在。
为什么要住?如何在创建plotsource
后设置删除它们?
我尝试了@reinierpost的答案,但它也没有删除它们。
答案 0 :(得分:1)
作为@red-cricket's comment,似乎只会自动删除特殊类型的文件。
.INTERMEDIATE
标志可以将随机文件明确指定为中间名。
https://www.gnu.org/software/make/manual/html_node/Chained-Rules.html
谢谢!
答案 1 :(得分:0)
正如用户657267所说,为了实现这一点,请向make
解释这些是中间文件。
plotsource: memo.md
xac xab xaa: memo.md
split $< -l8
heapsort: xaa
awk '/[0-9].*/{print $$1" "$$6}' $< > $@
downheat: xab
awk '/[0-9].*/{print $$1" "$$6}' $< > $@
upheat: xac
awk '/[0-9].*/{print $$1" "$$6}' $< > $@
plotsource: upheat downbeat heapsort
join upheat downheat | join - heapsort > $@