폴더 이름의 문자 수를 인쇄합니다.

폴더 이름의 문자 수를 인쇄합니다.

폴더 이름의 문자 수를 인쇄하기 위해 find . -type d -print | wc -mwhere -m또는 will을 사용하려고 합니다 .--chars

아래 스크린샷을 예로 들면 문자 수는 다음과 같습니다.임시 폴더+임시 폴더+딩동폴더오직34, 슬래시 및 점 계산 이벤트는 여전히40. 명령이 인쇄되는 이유43수치? 추가된 3개의 캐릭터는 어디서 왔나요?

여기에 이미지 설명을 입력하세요.

답변1

find . -type d -print | tr -d '\n' | wc -m

tr모든 개행을 제거하고 wc원하는 숫자를 계산합니다.

답변2

분명히 후행 줄 바꿈도 문자로 간주됩니다.

디렉터리당 문자 수를 원한다고 가정하면 다음과 같이 할 수 있습니다.

$ find -type d -exec bash -c 'echo -n $0 | wc -m' {} \; 
1
12
27

그것은 당신이 찾고 있는 40이 됩니다. 후행 echo -n줄 바꿈이 제거됩니다.

3개를 모두 추가하는 것도 가능합니다.

$ find -type d -exec bash -c 'echo -n $0 | wc -m' {} \; | awk '{S+=$1} END  {print(S)}'
40

답변3

ctbash/ksh/zsh 배열 의 출력을 설정한 wc -lm다음 쉘 연산을 사용합니다.

ct=($(find . -type d -print |wc -lm)); echo $((ct[1]-ct[0]))

또는 필드 분할 및 위치 매개변수를 사용하세요.

set $(find . -type d -print |wc -lm); echo $(($2 - $1))

관련 정보