wc
디렉터리 범위에 있는 특정 파일(예: .txt 파일)에 대해서만 결합된 단어 수를 반환할 수 있습니까?
답변1
GNU wc를 사용하면 (적어도) 다음과 같이 find
결과를 결합 할 수 있습니다 wc
.
find folder/ -name '*.txt' -print0 | wc -w --files0-from=-
이는 모든 기능을 제공하며 find
(정직으로 끝나는 모든 파일을 찾으려는 경우 약간 과잉입니다 .txt
) 가장 이상한 파일 이름(예: 개행 포함)도 처리할 수 있습니다.
답변2
제가 귀하의 상황을 정확하게 이해하고 있습니까? 따라서 Documents라는 폴더에 있고 해당 폴더 안에 여러 폴더가 있다고 가정하고 해당 디렉터리로 디렉터리(cd)를 변경하고 해당 디렉터리에 있는 각 폴더에 몇 개의 폴더가 있는지 계산하려고 합니다. 하위 폴더?
이것이 의미하는 바라면 다음과 같이 할 수 있습니다.
$ ls -R *.txt | wc -l
ls = 목록. -R = 각 하위 폴더 반복 *.txt = .txt로 끝나는 문자 수
| = 에 전달되었습니다.
wc -l = 얼마나 많은지 세어보세요.
답변3
다음은 방금 xargs를 통해 만든 멋진 한 줄 내용입니다. macOS에서 테스트했습니다.
find . | grep -E "(.*\.js.*|.*\.txt|.*\.css|.*\.htm.*|.*\.sh|.*\.scss|.*\.md|.*\.java|.*\.conf|.*\.yaml)" | sed "s/^/\"/" | sed "s/$/\"/" | xargs -J thefile wc thefile
파일 이름의 공백을 처리합니다. Linux에서 -J를 -Y로 바꿀 수 있을까요? 잔디 깎이 기계가 Linux 상자에 대한 이더넷 연결을 끊어서 지금은 테스트할 수 없습니다.