![wc 명령을 사용하지 않고 줄, 단어 및 문자 수 계산](https://linux55.com/image/120452/wc%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EC%A4%84%2C%20%EB%8B%A8%EC%96%B4%20%EB%B0%8F%20%EB%AC%B8%EC%9E%90%20%EC%88%98%20%EA%B3%84%EC%82%B0.png)
명령을 사용하여 프로그램을 작성 했지만 쉘 스크립트를 사용하여 파일에서 사용하지 않고 줄, 단어 및 문자 수를 계산하는 wc
방법을 알고 싶습니다 .wc
답변1
바이트 수 계산(예 wc -c
: )
< file LC_ALL=C tr -c '\n' '[\n*]' | grep -c '^'
개행 수를 계산하려면(예 wc -l
: ):
< file LC_ALL=C tr -cd '\n' | grep -c '^'
단어(예 wc -w
:)의 경우 FreeBSD(GNU 아님)와 같은 POSIX 호환성을 가정하고 tr
파일에 잘못된 바이트 시퀀스가 포함되어 있지 않다고 가정합니다.
< file tr -cs '[:space:]' '[x*]' | tr -cs x '[\n*]' | grep -c x
문자(예 wc -m
: )의 경우 동일한 제한 사항이 적용됩니다.
< file tr -c '\n' '[\n*]' | grep -c '^'
출력 정보:
printf '\0foo\u2006and \r\fbar\nbaz'
wc
en_GB.UTF-8 로케일의 FreeBSD 시스템에서와 마찬가지로 각각 20, 1, 4 및 18을 제공합니다 .