저는 정규 표현식을 처음 사용합니다. 아래 입력 스트림을 구문 분석해 보세요. 정규식으로 구문 분석하는 방법. CNTXID가 늘어나고 있으니까요.
"Data"
CNTXID = 1
AP = 99
DEF = FALSE
CNTXID = 2
AP = 88
DEF = TRUE
CNTXID = 3
AP = 77
DEF = FALSE
그리고 CNTXID는 고정되어 있지 않습니다.
원하는 출력
CNTXID_1 = 1
AP_1 = 99
DEF_1 = FALSE
CNTXID_2 = 2
AP_2 = 88
DEF_2 = TRUE
CNTXID_3 = 3
AP_3 = 77
DEF_3 = FALSE
답변1
expect
데이터를 수정하는 데 사용해서는 안 됩니다. "메시지 수신 - 응답 전송"을 위해 설계되었습니다. 당신이 설명하는 것은 단지 데이터 형식을 다시 지정하는 것입니다.
이는 Perl을 사용하여 쉽게 수행할 수 있습니다.
#!/bin/perl
my $n=0;
while(<>) {
if (/CNTXID = (\d+)/) {
$n = $1;
}
if (/(\S+) = (\S+)/) {
printf "%7s_%d = %s\n", $1, $n, $2;
} elsif (/$\s*^/) {
print "\n";
}
}