답변:
이건 어때요:
fgrep -o f <file> | wc -l
참고 : 기억 / 복제 및 사용자 정의가 훨씬 쉬우 며 Vereb의 답변보다 약 3 배 빠릅니다 (죄송합니다.
\r이나 \n문자 가 필요한 경우 작동하지 않습니다 . 그 tr -cd f대답은 효과가 있습니다.
a, b그리고 c, 사용 egrep: egrep -o 'a|b|c' <file> | wc -l.
wc -c과 같이 사용하지 마십시오 tr. grep행별로 출력하면 행 wc끝이 문자로 계산되므로 문자 수가 두 배가됩니다.
\r,하지만 \n왜 사용하지 wc -l않습니까?
훨씬 더 빠름 :
tr -cd f < file | wc -c
검색된 문자가 4.9MB 및 1100000 인 파일 이있는이 명령의 시간 :
real 0m0.089s
user 0m0.057s
sys 0m0.027s
Vereb 응답에 대한 시간과 echo, cat, tr과 bc같은 파일 :
real 0m0.168s
user 0m0.059s
sys 0m0.115s
와 롭 Hruska 응답 시간 tr, sed그리고 wc같은 파일 :
real 0m0.465s
user 0m0.411s
sys 0m0.080s
와 Jefromi 응답 시간 fgrep과 wc같은 파일 :
real 0m0.522s
user 0m0.477s
sys 0m0.023s
a, b및 c: tr -cd abc < file | wc -l.
tr -cd abc < file | wc -c대신 에 예상되지 않았습니다
echo $(cat <file> | wc -c) - $(cat <file> | tr -d 'A' | wc -c) | bc
여기서 A는 문자입니다
검색된 문자가 4.9MB 및 1100000 인 파일이있는이 명령의 시간 :
real 0m0.168s
user 0m0.059s
sys 0m0.115s
cat을 제거하면 파일 이름이 wc및에 대한 인수로 제공되어 약 1/3 더 빠릅니다 tr.
stdin하지만 cated 대신 파이프 될 수 있습니다 .tr -d 'A' < <file> | wc ...