2011-09-01 5 views
0

<을 사용하여 파일을 읽을 수있는 파서 myParser입니다. 내가 파일 a.txt이 구문 분석입니다 경우, 단순히프로그램이있는 디렉토리의 모든 파일 검사

$ myParser < a.txt 

I 자체가 많은 다른 디렉토리를 포함하는 디렉토리에 많은 이러한 파일을 입력합니다. 예를 들어

dir1 
|- dir12 
| |- a.txt 
| |- b.txt 
|- dir2 
| |- dir21 
| | |-dir31 
| | | |-c.txt 

이 모든 * .txt 파일을 구문 분석 할 수있는 단일 명령을 실행하고 싶습니다.

나는 {find -exec}로 놀고있는 동안 어떤 제안이든지.

업데이트 : $ find ./ iname "*.txt" -exec ./Bin/myParser {} \;을하면 ./Bin/myParser permission denied이됩니다.

+0

Bin/myParser에는 실행 권한이 –

+0

예입니다. 그것은 하나의 파일에 사용할 때 잘 작동합니다. 지금 확인해 봤어. 모든 파일의 허가와 소유권은 문제가 없습니다. – Dilawar

+0

하지만 첫 번째 예제에서는 'myParser'를 사용하고 두 번째 예제에서는 './Bin/myParser'를 사용하고 있습니다. 자신의 예제가 효과가 있었다면 그것들이 동일하다는 것을 나는 의심한다. – Evert

답변

1
find <root_dir_name> -name *.txt | xargs myParser 
+0

./Bin/BlueSpec : 1 : // : 3 : // : 사용 권한이 거부 ./Bin/BlueSpec : 4 : 권한이 ./Bin/BlueSpec을 거부 // : 권한 ./Bin/BlueSpec 거부 : 5 : // : 사용 권한이 거부되었습니다. ./Bin/BlueSpec : 6 : // : 사용 권한이 거부되었습니다. ./Bin/BlueSpec : 7 : 구문 오류 : 예기치 않은 단어 (예상 ")") BlueSpec이 myParser 인 경우 – Dilawar

+0

root dir은 귀하의 모든 테스트 txt 파일. 당신이주고 있다면/그것은 전체 파일 시스템을 스캔 할 것입니다. –

+0

./을 으로 지정했습니다. 상대 경로를 반환합니다. 괜찮습니다. – Dilawar

관련 문제