나는 같은 데이터가
3:12:19 [Sam Peters] user at X
11:1:17 [Roger Fernandes] user at Y
10:9:25 [Harry Dsouza] user at Z
내 결과물이
[Peters.S] user at X 3:12:19
[Fernandes.R] user at Y 11:1:17
[Dsouza.H] user at Z 10:9:25
내 코드가 작동하지 않습니다. 이것은 내 스크립트입니다
#!/usr/bin/perl/
use warnings;
use strict;
my $log = "3:12:19 [Sam Peters] user at X \n11:1:17 [Roger Fernandes] user at Y \n10:9:25 [Harry Dsouza] user at Z \n";
print "$log \n";
$log =~ s/ ^
(.*) #First group time
\s #whitespace
\[ #start bracket
(\w)\s(\w+) #name in square barckets
\] #end brackets
\s
(.*) #everything else
$/\[$3\.$2\] $4 $1/gxi;
print "$log \n";
저는 Perl의 초보자 일 뿐이며 입력과 동일한 출력을 얻습니다.
간단한 코드 예제에서 데이터의 각 줄을 읽고 각 줄에 다음 정규식을 사용할 수 있습니다.
$line =~ s/(.*) \[(\w)(\w+) (\w+)\] user at (\w+)/\[$4\.$2\] user at $5 $1/;
이 링크의 정규식을 위의 데이터로 대체 하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다