디렉토리 내의 파일에서 총 행을 계산하려고합니다. 이렇게하려면 find와 wc의 조합을 사용하려고합니다. 그러나 find . -exec wc -l {}\;
을 실행하면 find: missing argument to -exec
오류가 나타납니다. 나는 명백한 문제, 어떤 아이디어도 볼 수 없습니까?find -exec가 인수를 인식하지 못합니다.
답변
당신은 단순히 현재 위치에서 하위 디렉토리가있는 경우, wc
그런 식으로 뭔가를 보이는 그들 각각에 대한 오류 메시지를 생성합니다
find . -exec wc -l {} \;
{}
사이 \;
공간이 필요합니다 :
wc: ./subdir: Is a directory
이 문제를 방지하려면, 당신은 파일에 대한 검색을 제한 할 find
에게 할 수 있습니다 :
find . -type f -exec wc -l {} \;
다른 메모 : -exec
옵션을 사용하는 것이 좋습니다. 너무 많은 시간 사람들이 관이 함께 같은 결과를 얻을 생각을 명령, 여기에서 예를 들면 그것은 다음과 같습니다하는 방식으로 배관 명령을
find . -type f | xargs wc -l
문제는 모든 파일이 공백이있는 경우는 휴식이다. 예를 들어 파일 이름이 "a b"인 경우 wc
은 "a"와 "b"를 따로 받고 두 개의 오류 메시지 (a: no such file
및 b: no such file
)를 받게됩니다.
파일 이름에 공백이 없거나 인쇄 할 수없는 문자가 있다는 것을 알지 못하는 경우 명령을 함께 파이프해야하는 경우 모두 함께 파이핑하는 도구를 지정해야합니다 NULL 문자 (\ 0)를 공백 대신 구분 기호로 사용합니다. 그래서 이전 명령이 될 것입니다 : 버전 4.0 이상 bash
의와
find . -type f -print0 | xargs -0 wc -l
POSIX는'; ''(또는'\;') 대신'+'를 사용하는 것이'xargs'를 사용하는 것과 거의 비슷하게 작동한다고 규정했다. 'find'는 N 개의 파일 이름 (N은 제어 가능한 양이 아니라 인수리스트의 최대 길이와 파일 이름의 길이에 달려 있음) 당 한 번 명령을 실행하기 위해 여러 파일 이름을 그룹화합니다. –
, 당신은 전혀 find
명령을 필요가 없습니다
shopt -s globstar
wc -l **/*
하는 등 Gui Rava가 지적한대로 파일과 디렉토리를 이름만으로 구분할 수 없다면 말입니다. 예를 들어, 디렉토리의 이름에 .
이 없어도 모든 파일에는 하나 이상의 확장자가있을 수 있습니다.
wc -l **/*.*
- 1. 아나콘다가 인수를 인식하지 못합니다.
- 2. SWIG에서 문자열 인수를 인식하지 못합니다.
- 3. Argparse가 유일한 위치 인수를 인식하지 못합니다.
- 4. 포스트 수신 후크가 인수를 인식하지 못합니다.
- 5. 크롬이 함수 인수를 올바르게 인식하지 못합니다.
- 6. 최신 ember.js (1.0.0.0)가 "find"및 "createRecord"를 인식하지 못합니다.
- 7. 시스템이 파이썬 시스템을 인식하지 못합니다.
- 8. irb가 메서드를 인식하지 못합니다.
- 9. 패턴 규칙을 인식하지 못합니다.
- 10. Textwatcher에서 공백을 인식하지 못합니다.
- 11. Django가 URL을 인식하지 못합니다.
- 12. 스크립트가 FSharp.Data를 인식하지 못합니다.
- 13. QakeCreator가 cmake를 인식하지 못합니다.
- 14. Eclipse가 examplefilefinder를 인식하지 못합니다.
- 15. Jquery가 클릭을 인식하지 못합니다.
- 16. UriMatcher가 패턴을 인식하지 못합니다.
- 17. Excel에서 날짜를 인식하지 못합니다.
- 18. 'identify'명령으로 이미지를 인식하지 못합니다.
- 19. 빌트인 플러그인을 인식하지 못합니다.
- 20. node.js express를 인식하지 못합니다.
- 21. JerseyTest가 @WebFilter를 인식하지 못합니다
- 22. 통장이 iBeacon을 인식하지 못합니다
- 23. 프로토콜을 인식하지 못합니다.
- 24. opencv가 매크로를 인식하지 못합니다.
- 25. Node.js가 Coffeescript를 인식하지 못합니다.
- 26. DataTables에서 데이터를 인식하지 못합니다.
- 27. heightForRowAtIndexPath가 방향을 인식하지 못합니다.
- 28. eclipse에서 플러그인을 인식하지 못합니다
- 29. 이 함수를 인식하지 못합니다.
- 30. Excel에서 날짜를 인식하지 못합니다.
공간을 찾지 못했습니다. '찾기. -exec wc -l {} \;'('\;'앞에 공백). –
나는 영리한 사람이 아니다. – ragingSloth