У меня есть файл со следующими строками:
первый шаблон:
.comm "8"
....
.comm "20"
второй шаблон:
.comm _resultAvg,8,4
.comm _resultSwap,8,4
.comm _resultMax,20,4
Я хочу заменить первый шаблон на:
.data.32 0
.data.32 0
...
.data.32 0
.data.32 0
.data.32 0
.data.32 0
.data.32 0
И 2-й шаблон как:
.data
_resultAvg:
.data.32 0
.data.32 0
.data
_resultSwap:
.data.32 0
.data.32 0
.data
_resultMax:
.data.32 0
.data.32 0
.data.32 0
.data.32 0
.data.32 0
Я могу выполнить первую задачу с помощью;
#!/usr/bin/perl
use warnings;
use strict;
use String::Interpolate;
my $j=0;
while (<>) {
if (my ($string) = /^\s+\.comm\s+"(.*)"/) {
for( $j=0; $j < ($string/4); $j = $j +1){
print "\t.data.32\t0\n";
}
} else {
print;
}
}
Как выполнить второе задание? То есть найти числовой, например, 20 и разделите его на 4, а затем начните с соответствующего числа строк ".data.32 0" после начала с соответствующего символа.
привет