하나이지만 매우 긴 열을 포함하는 파일을 열려고합니다. 나는 그저 짧은 세그먼트를 검색하고, 지정된 라인에서 시작하여 다른 지정된 라인에서 끝내기를 원한다. 현재 스크립트는 원하는 줄이 발견 될 때까지 줄 단위로 파일을 읽습니다. 내가 사용하고 있습니다 :Perl을 사용하여 한 줄씩 파일을 읽는 대신 파일의 한 줄로 "점프"하는 방법
A
G
T
C
A
G
T
C
.
.
.
어떻게 내가되고 싶은 곳으로 "점프"수 있습니다
my ($from, $to) = (some line number, some larger line number);
my $count = 1;
my @seq =();
while (<SEQUENCE>) {
print "$_ for $count\n";
$count++;
while ($count >= $from && $count <= $to) {
push(@seq, $_);
last;
}
}
print "seq is: @seq\n";
입력처럼 보인다?
줄'<>'을 통해 줄을 빠르게 할 방법이 없다고 생각합니까? – ES55
@ ES55 : Perl 개발자가 만들 수있는만큼 빨리 진행될 것으로 기대합니다. 적어도 유닉스와 윈도우 같은 시스템에서는 텍스트 파일이 무작위로 라인 어 드레서 블하지 않습니다. 고정 길이 행을 시행하거나 2 진 형식으로 전환 할 수있는 경우, 임의의 레코드를 페치 할 수 있습니다. 또는 어떤 종류의 데이터베이스로 전환하는 것을 고려할 수도 있습니다. 모든 작업은 수행하려는 작업과 변경 빈도에 비해 파일에 액세스해야하는 횟수에 따라 다릅니다. –
나는 유닉스와 비슷한 맥을 사용한다. 파일은 염색체 서열이며 빈번하게 변하지는 않지만 자주 액세스됩니다. 'seek' 명령은 지금까지 매우 빠르게 작동합니다. 내가하고있는 일을 할 수있는 데이터베이스와 소프트웨어가있을 것이라고 확신하지만, 프로그래밍에 대해 배우는 과정이 끝날 무렵에는 휠 또는 두 가지를 재발 명하는 데 신경 쓰지 않습니다. – ES55