XML 또는 텍스트 형식 일 수 있습니다. Perl에서 한 블록의 텍스트를 grep하는 방법은 일반적입니까?Perl - 파일에서 텍스트 블록을 grep하는 방법
<track type="ws">
<range>
<rangeStart>0</rangeStart>
<rangeEnd>146.912</rangeEnd>
<locationIndex>0</locationIndex>
<propertyIndex>0</propertyIndex>
</range>
</track>
<track type="ps" id="1">
<range>
<rangeStart>0</rangeStart>
<rangeEnd>146.912</rangeEnd>
<locationIndex>1</locationIndex>
<propertyIndex>1</propertyIndex>
</range>
</track>
나는 type="ps"
grep으로하고 </range>
까지 모든 것을 얻을 싶어요.
한 가지 해결 방법은 파일을 열고 한 줄씩 읽은 다음 블록을 일치시키는 것입니다.
open(FH, "file.txt");
foreach $line (<FH>) {
if ($line =~ m/type="cc"(.*?)<\/range>/) {
print $1;
}
}
하지만 파일을 한 줄씩 읽지 않고도 최적의 해결책이 있습니까?
위대한 !! 고마워 .. 내가 좀 더 일반적인 접근 방식과 xml 특정 .. 찾고 actuallall이 작동합니다. – dreamer