我想使用makefile来获取文件(当然所有这些都需要一般化):
content/post/filename.md
并写信给
2015-01-01
将文件名sed '1 adate: 2015-01-01' > content/post/filename.md
的一部分添加到文件中。所以unix部分会是这样的:
content/%.md: $(subst ./,,$(shell find ./src/post/ -regextype posix-extended -regex '.*[0-9]{4}-[0-9]{2}-[0-9]{2}-.*\.md'))
在makefile中我会写一些类似的东西:
2015-01-01.filename.md
我不太清楚如何删除日期并将其粘贴到文件中并将其与makefile匹配。
对此有简单直接的解决方案吗?
另外,如果原始文件的名称如POST_SRC := $(subst ./,,$(shell find ./src/post/ -regextype posix-extended -regex '.*[0-9]{4}-[0-9]{2}-[0-9]{2}-.*\.md'))
define POSTS_PARSE
_target := $(shell $1 | grep -Po '\w+\.md')
POSTS := $$(POSTS) $$(_target)
$$(_target): $1
date=$(basename $< | grep -Po '\d{4}-\d{2}-\d{2}');\
cat $< | sed '1 a'$date > $@
endef
$(foreach x,$(POST_SRC),$(eval $(call POSTS_PARSE,$x)))
posts: $(POSTS)
,那么更容易做到这一切吗?
更新
这是我到目前为止所做的,但仍然没有工作:
case class Contact(id: String, version: Int, fName: String, lName: String, age: Int)
答案 0 :(得分:0)
终于明白了。不确定是否有更好的方法。
POST_SRC := $(subst ./,,$(shell find ./src/post/ -regextype posix-extended -regex '.*[0-9]{4}-[0-9]{2}-[0-9]{2}-.*\.md'))
define POSTS_PARSE
_target := $(shell echo $1 | grep -Po '\w+\.md')
POSTS := $$(POSTS) $$(_target)
$$(_target): $1
date=$$$$(basename $$< | grep -Po '\d{4}-\d{2}-\d{2}'); \
sed "1 adate: $$$$date" $$< > $$@
endef
$(foreach x,$(POST_SRC),$(eval $(call POSTS_PARSE,$x)))
posts: $(POSTS)