2013-02-26 4 views
0

makefile에서 txt 파일의 행을 정렬하려고합니다. 이 정렬 함수는 make 함수입니다 (내장 함수).make sort - 내장 함수

$(sort list) 

내 생각 :

$(UNSORT) = $(cat input.txt) 
$(SORTED) = $(sort $(UNSORT)) 
@echo $(SORTED) >output.txt 

..하지만이 일하지 : S

사람이 도울 수

?

+0

무엇 공백에 대한? – Beta

답변

1

단지이 방법

sort text.txt > output.txt 
+0

이것은 내장 기능입니다? 이 중복 단어를 제거하지 않습니다 ... 이것은 자습서에서 예제입니다 : $ (sort foo bar lose) 잘 작동합니다. – user2105261

+0

아니요, 정렬은 표준 명령 줄 프로그램입니다. 중복을 제거해야하는 경우 "cat input.txt | sort | uniq> output.txt"를 사용할 수 있습니다. – Alexeyss

+0

이 make 빌드 기능 만 사용할 수 있습니다. – user2105261

0

당신은 임무 중에 $()의 변수 이름을 둘러싸는 안 명령 종류의 호출합니다. 따라서 처음 두 개의 할당 문은 다음 형식의 형식이어야합니다. VARIABLE = some_value

두 번째 문제는 cat입니다. 셸 명령을 실행하려면 make의 내장 함수 $(shell ...)을 사용해야합니다. 간단한 $(cat ...)은 사용하지 않습니다. 대신에 이러한 수정으로

이 스크립트는 잘 실행 :

UNSORT = $(shell cat input.txt) 
SORTED = $(sort $(UNSORT)) 

all: 
    @echo $(SORTED) > output.txt