2012-07-30 2 views
1

저는 스크립트를 처음 사용하고 몇 가지 질문이 있습니다. 이것은 경로입니다스크립트 작성

c:/data/flow/gen/value/foo.txt 
c:/data/flow/gen/secondvalue/cat.txt 
c:/data/flow/gen/thirdvalue/bar.txt 

나는 폴더 gen 안에 모든 .txt 파일을 가져 오기 위해 스크립트를 작성해야합니다.

저는 다음과 같이 쓰고 있습니다.

find - path c:/*/gen/* -name "*.txt" | cat >> output.txt 

출력 파일에서 파일 이름을 가져 오지 못했습니다. 누군가가 이것으로 나를 도울 수 있습니까? "gen"폴더 이름을 알고 경로가 숨겨져 있습니다. 그래서 스크립트를 작성해야 따라

+0

* 받고있는 항목은 무엇입니까? –

+0

그냥 빈 파일 –

+0

정말요? 왜냐하면 당신은 에러 메시지를 받아야하기 때문에 ... –

답변

0

이 시도 : 당신은 당신이 검색 할 디렉토리와 디렉토리를 교체해야

find directory -name "*.txt" -print -exec cat '{}' \; > output.txt 

-print    # prints the filename 
-exec cat '{}'  # cats the file 
> output.txt  # puts it all into output.txt 

. 이것은 Linux 셸에서는 작동하지만 Windows에서는 작동하지 않습니다.

Windows를 사용하는 경우 "파일 및 폴더 찾기"기능을 사용해보십시오.

+0

빈 파일을 보여 주었지만 여전히 그렇습니까? Nd는 gen의 정확한 위치도 알고 있지 않습니다. 그래서 C와 같아야합니다 :/*/gen/* / –

0

-path 앞에 하나 이상의 디렉토리를 추가하십시오.

-와 path 사이의 공백을 삭제하여 "-path"를 읽습니다.

"* .txt"(공백으로 구분) 뒤에 이동성을 위해 -print를 추가하십시오.

이것은 "쓸모없는 고양이 사용"입니다. 찾기 명령으로 추가 작업을 수행 할 수 있습니다. 더 간단하고 빠릅니다.

이 cygwin입니까?

당신 수도 당신의 C 탈출 \ 할 필요가 : \ - 콜론 확실히 쉘 내장입니다,하지만이 경우에 문제가 있을지는 확실하지 않다.