반응형
일반 텍스트 파일에서 문자 발생 횟수
리눅스 / 터미널에서 문자 f가 일반 텍스트 파일에서 몇 번이나 나오는지를 세는 방법이 있습니까?
이건 어때요:
fgrep -o f <file> | wc -l
참고 : 기억 / 복제 및 사용자 정의가 훨씬 쉬우 며 Vereb의 답변보다 약 3 배 빠릅니다 (죄송합니다, 편집! 첫 번째 테스트를 완료했습니다).
훨씬 더 빠름 :
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
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
캐릭터를 포함하는 줄 수를 세는 것만으로도 충분합니다.
grep -c 'f' myfile
그러나 동일한 행에서 여러 번의 'f'발생을 단일 일치로 계산합니다.
tr -d '\n' < file | sed 's/A/A\n/g' | wc -l
"A"두 문자를 문자로 바꾸고 "file"을 입력 파일로 바꿉니다.
tr -d '\n' < file
: 줄 바꿈 제거sed 's/A/A\n/g
: "A"가 나타날 때마다 줄 바꿈을 추가합니다wc -l
: 줄 수를 센다
예:
$ cat file
abcdefgabcdefgababababbbba
1234gabca
$ tr -d '\n' < file | sed 's/a/a\n/g' | wc -l
9
참고 URL : https://stackoverflow.com/questions/1603566/count-occurrences-of-a-char-in-plain-text-file
반응형
'Programing' 카테고리의 다른 글
Spark에서 정보 로깅을 해제하는 방법은 무엇입니까? (0) | 2020.07.08 |
---|---|
Ruby on Rails : 마이그레이션을 사용하여 기존 열에 null이 아닌 제약 조건을 어떻게 추가합니까? (0) | 2020.07.08 |
VS2015 빌드가 Dynamic에서 오류 메시지없이 실패 함 (0) | 2020.07.07 |
선택한 특정 열을 새 DataFrame에 복사본으로 추출 (0) | 2020.07.07 |
'eval'을 사용하는 것은 왜 나쁜 습관입니까? (0) | 2020.07.07 |