검색 횟수가 많았습니까? 여기 펄 멍청이.Perl - 파일의 각 줄마다 특정 단어가 나타나는 횟수를 계산합니다.
텍스트 파일이 이미 데이터 라인에 정리되어 있습니다. 관심이있는 두 개의 문자열이 "hello"와 "goodbye"라고 가정 해보십시오. 첫 번째 줄을보고 "hello"와 "goodbye"가 몇 번이나 나오는지 계산하는 빠른 Perl 스크립트를 작성하고 싶습니다. 그런 다음 다음 줄로 이동하여 이전 계산에 추가합니다. 그래서 스크립트의 끝까지 파일의 각 문자열에 대한 전체 카운트 수를 출력 할 수 있습니다. 한 줄씩 접근하는 것이 중요한 이유는 여러 줄을 사용하여 두 단어가 같은 줄에 여러 번 인쇄 할 수 있기 때문입니다. 한 줄에는 단어 중 하나만 포함되어 있고 그 중 하나는 포함되지 않습니다. 기타, 한 줄에는 "hello"가 한 번 있지만 여러 번 "안녕히"여러 번 포함됩니다. 실제로 모든 단어가 전체 문서에 나타나는 횟수가 아니라 각 조건이 한 줄에 여러 번 표시됩니다.
지금까지 내가 생각하고 있어요 :
#!/usr/bin/perl
use strict; use warnings;
die etc (saving time by not including it here)
my $word_a = "hello";
my $word_b = "goodbye";
my $single_both = 0; # Number of lines where both words appear only once.
my $unique_hello = 0; # Number of lines where only hello appears, goodbye doesn't.
my $unique_goodbye = 0; # Number of lines where goodbye appears, hello doesn't.
my $one_hello_multiple_goodbye = 0; # Number of lines where hello appears once and goodbye appears multiple times.
my $one_goodbye_multiple_hello = 0; # Number of lines where goodbye appears once and hello appears multiple times.
my $multiple_both = 0; = # Number of lines where goodbye and hello appear multiple times.
while (my $line = <>) {
Magic happens here
};
# then the results for each of those variables can be printed at the end.
내가 말했듯이, 나는 멍청한 놈입니다. 나는 각 줄의 사건 수를 계산하는 방법에 대해서 혼란 스럽다. 위에 열거 한 모든 조건을 모두 파악할 수있을 것이라는 확신이 들더라도. 배열을 사용해야합니까? 해시? 아니면 내가 원하는 것을 고려하여 완전히 잘못된 방향으로 접근했다. 나는 그 변수들 뒤에 주석으로 나열한 조건들이 다른 라인들의 수를 세고 싶다. 어떤 도움이라도 대단히 감사합니다!
좋은 시작이되어야합니다 :'$ line = ~/hello /) {print "안녕하세요. $ line \ n"}' –
@mpapec : 그건 정말 hello를 계산하기 시작하지 않습니다. – ysth
@ysth 다른 경우에도 사용할 수 있지만'/ g'이 더 유용하다는 데 동의합니다. –