usando perl, como selecionar as últimas 2 linhas no caso de cada linha ter a mesma palavra?
Bini -- -21.89753 -20.47853 -20.27835 -18.34952 -16.23454
Bini -- -16.89753 -14.47853 -13.27835 -12.34952 -11.23454
Bini -- -10.09014
meu arquivo tem uma matriz como mostrado acima. E essa matriz começando com Bini é uma matriz com várias linhas, mas estou mostrando apenas 3 linhas aqui. O que eu queria tentar é extrair os últimos 3 elementos das 2 últimas linhas. Então, -12.34952 -11.23454 -10.09014 esses 3 elementos eram o que eu queria. Às vezes, a última linha pode ter elementos de 2 a 5, dependendo dos arquivos. Mas aqui, ele possui apenas 1 elementos da última linha.
O que eu tentei foi o seguinte
while(my $line = <FILE>) {
if($line =~ /Bini/) { #extract last 3, 2, 1 element
my @entries = split(/Ws+/,$line);
$element1 = (pop@entries);
$element2 = (pop@entries);
$element3 = (pop@entries);
}
Como resultado, pude ver o elemento1 que é -10.09014, mas infelizmente não consegui obter o elemento 2 e o elemento 3. Alguém poderia me ajudar? ..
Eu quero manter meu script original. Quero dizer ,, processo de criação de result.txt e método de abertura de "log", que é o formato de saída.
Bloco de citação
#!/usr/bin/perl use warnings;
use strict;
use File::stat;
open (OUT, ">", "result\.txt") or die "cannot open file\,\n"; #from this plx, I want to creat result.txt
foreach my $answer (glob "*.log") { # format of reading file will be "log"
open (FILE, "<", "$answer") or die "Cannot open file\.\n";
my @file = split ('\.', $answer);
Bloco de citação
seu método de abertura de erro induzido por arquivo (meu @array = read_file ('input.txt') Eu me pergunto como posso usar o script a partir do meu $ line = 0. do seu script.Embora mudei o formato do txt para o log (por exemplo input.log), ele ainda deu uma mensagem de erro. (read_file 'input.txt' - sysopen: Não existe esse arquivo ou diretório na linha text.plx 6)
.....