16

以下の sed & grep への参照を削除しない限り、常に失敗する Makefile に次のコード スニペットがあります。

TAB=$(shell printf "\t")
all: abstract.tsv
      $(shell cut -d "${TAB}" -f 3 abstract.tsv | sed "s/^\s*//" | \
        sed "s/\s*$//" | grep -v "^\s*$" | sort -f -S 300M | \
        uniq > referenced_images.sorted.tsv)

これは私が得るエラーです:

/bin/bash: -c: line 0: unexpected EOF while looking for matching `"'
/bin/bash: -c: line 1: syntax error: unexpected end of file

何が間違っている可能性がありますか?

4

1 に答える 1

25

から 1 つのエラーが発生していsedます。あなたが書くとき:

sed "s/\s*$//"

make は変数$/を空の文字列に展開するため、sed には区切り文字がありません。試す:

sed "s/\s*$$//"

を使用する$"と、同じ問題が発生しgrepます。grep -v "^\s*$$"代わりに使用してください。

于 2013-02-25T16:23:20.000 に答える