Я использую make, и я хотел бы сослаться на переменную оболочки внутри sed.Тем не менее, в sed
-call $$LASTMOD
только расширяется до $LASTMOD
, но я хотел бы видеть что-то вроде
-rw-r--r-- 1 weiss Administ 5752 Apr 1 23:44 src/stata/ini-00.do
Это работает для echo
, но не для sed
..ONESHELL
, похоже, тоже не работает.
.SUFFIXES : .do .tmp
DOFILES = $(shell ls src/stata/*.do | sed 's/.do/.tmp/')
all: $(DOFILES)
.do.tmp:
LASTMOD=`ls -l $*`; echo $$LASTMOD; sed -e \
"s/Last modified:.*/Last modified: $$LASTMOD/g" $*.do > $*.tmp
ОБНОВЛЕНИЕ:
После применения изменений, предложенных @geekosaur, @William Pursell и @eriktousэто работает как шарм:
.SUFFIXES : .do .tmp
DOFILES = $(shell ls src/stata/*.do | sed 's/\.do/\.tmp/')
all: $(DOFILES)
.do.tmp:
LASTMOD=`ls -l $<`; \
sed -e "s, Last modified:.*, Last modified: $$LASTMOD, g" $*.do > $*.tmp