저는 Perl
에 새 소식입니다. 첫 번째 정규식 일치 이상의 것을 인쇄하고 싶습니다. txt 파일에는 shutdown
번 57 번 포함되어 있습니다. 다음 코드와 함께 첫 번째 일치 항목 만 반환됩니다.Perl 더 많은 줄을 인쇄하십시오.
#!/usr/bin/perl
use strict;
use warnings;
use Path::Tiny;
use autodie;
my $dir = path("H:/Perl");
my $file = $dir->child("test.txt");
my $content = $file->slurp_utf8();
my $file_handle = $file->openr_utf8();
(my $test) = $content =~ m/^.+$(?=\s+shutdown)/mg;{
print "$test\n";
}
나는 while loop
을 시도했지만 제대로 작동하지 않았습니다. 도와 주셔서 감사합니다. '인터페이스 포트 channel200'편집
: 내가 다시에만있어
interface port-channelxyc
description provdb002
shutdown
switchport access vlan 123
spanning-tree port type edge
interface port-channel456
description provdb002
switchport access vlan 32
spanning-tree port type edge
interface port-channel200
shutdown
: 여기 몇 가지 예를 들어 데이터입니다 '설명 provdb002' 은 다음 중지를,하지만 난 다음 한도 얻을 싶어 등등 ... 내가 무슨 뜻인지 알기를 바랍니다.
귀하의 정규식이'/ g'와 목록을 반환 _does_; 그래서 그것을 배열에 할당하십시오.'my @ary = $ content = ~ ...' – zdim
몇 가지 예제 데이터를 제공하고 원하는 출력을 줄 수 있습니까? 소리가 날 위험이 있으므로, 그 파일이 모두 공통적 인 것이 아니기 때문에 확실히 utf8입니까? 이 패턴의 문제점은 목록을 반환한다는 것이지만 올바른 것을 캡처 할 수 있을지 확신 할 수 없습니다. – Sobrique
질문을 편집하고 거기에 데이터를 추가하십시오. 주석에 넣으면 줄 바꿈 위치를 알 수 없습니다. – Borodin