누구나 -d
과 < $<
사이의 문자가 다음 makefile 명령에서 무엇을 설명 할 수 있습니까?파일 명령 만들기
tr -d "\`[email protected]#$%^&*=+<>{}[]|/'" < $< | ./$(ANSWER) $(STOPWORDS) | sort > [email protected]
여기서 STOPWORDS는 단어가있는 파일이고 ANSWER는 실행 파일입니다.
누구나 -d
과 < $<
사이의 문자가 다음 makefile 명령에서 무엇을 설명 할 수 있습니까?파일 명령 만들기
tr -d "\`[email protected]#$%^&*=+<>{}[]|/'" < $< | ./$(ANSWER) $(STOPWORDS) | sort > [email protected]
여기서 STOPWORDS는 단어가있는 파일이고 ANSWER는 실행 파일입니다.
tr
문자를 변환하거나 삭제합니다.
SET1
을 삭제할 것
-d
tr
을 알려줍니다 전달
"`~ @ # $으로의 %^& * = + <> {} [] |/'"문자의 집합이다 삭제할 수 있습니다.
<
는
$<
첫 번째 전제 조건의 이름을 식별하는 one of the automatic make variables 인 shell redirection 문자 그래서 당신은 주어진의 첫 번째 전제 조건에서 발견되는 특정 세트에서 모든 문자를 삭제하고
규칙을 만들어라. 여기
은 간단한 예제 -메이크 :
all:text.txt
tr -d "\`[email protected]#$%^&*=+<>{}[]|/'" < $<
지금이 text.txt 파일 제공 :
이$ cat text.txt
huio7&*(njkvlsan7u#%$&*(FHhnjkl
는 메이크업 파일을 실행하고 볼을 :
$ make
tr -d "\`[email protected]#^&*=+<>{}[]|/'" < text.txt
huio7(njkvlsan7u%$(FHhnjkl
&
, *
및 #
이 모두 누락되었습니다.
수직 막대 |
은 pipe character이며 첫 번째 명령의 출력을 받아 다음 명령으로 보냅니다.
$
및
%
이 제거되지 않은 이유를 취급 특별하게 일부 문자가 있기 때문에, 대답은 물었다.명령의 실제 출력에서보세요 :
$ make
tr -d "\`[email protected]#^&*=+<>{}[]|/'" < text.txt
make
실제로 가이 $
와 이스케이프 문자 (백 슬래시)를 가지고 있지 않은 %
make
때문에 인정 특수 문자가 포함되지 않은 실행 한 라인 그들.
새로운 메이크 :
$ make
tr -d "\`[email protected]#\%^&*=+<>{}[]|/'" < stupid_text.txt
huio7(njkvlsan7u$(FHhnjkl
가 %
가 메이크업 출력에 나타나서 문자열이 지금 얼마나 참조 :
all:text.txt
tr -d "\`[email protected]#$\%^&*=+<>{}[]|/'" < $<
지금 우리가 보는이 명령을 실행 예,의는
%
탈출하자
%
을 삭제 했습니까?
tr
명령은 $<
으로 지정된 파일에서 나열된 모든 문자 (큰 따옴표 제외) ("\`[email protected]#$%^&*=+<>{}[]|/'"
)를 삭제합니다 (-d
). 출력은 answer/stopwords 명령으로 이동하고 해당 출력은 출력 파일로 정렬됩니다.
실제로는 $<
및 [email protected]
이 make
인 것을 제외하고는 make
과 거의 관련이 없습니다.