A impressão de dados não foi semelhante à entrada e gostaria de remover alguns dos dados do conteúdo

0

Eu quero tentar imprimir todo o conteúdo no arquivo de entrada .txt para processar alguns dados, mas eu estava enfrentando algum problema, já que a impressão do conteúdo não foi registrada. Posso saber por que foi assim? Obrigado a todos. Eu quero gerar o conteúdo e remover todo o "0x".

Arquivo de entrada

0x30002; 0x0; 0x0
0x0; 0x0; 0x0
0x36460301; 0x15; 0x0
0x88A3; 0x0; 0x0
0xF0000D01; 0x4; 0x0
0xF0000D01; 0x5; 0x0
0xF0000501; 0x22882208; 0x0
0xF0000D0D; 0x7; 0x0
0xF0000D11; 0xD; 0x0
0xF0000D19; 0x2; 0x0
0xF0000105; 0x147; 0x0
0xF0000231; 0x8FC; 0x0
0xF0000909; 0x80327; 0x0
0xF000090D; 0xF4F3034A; 0x0
0xF0000911; 0xF5; 0x0
0xF0000E11; 0xA01FA00; 0x0
#!/bin/perl
#!/usr/local/ActivePerl-5.6/bin/perl -w

$infile = $ARGV[0];
$outfile = "$infile.dc";
$index = 0;

open (OUT, ">$outfile" );

        $index = 0;
        open (INF, "$infile") || die (" can not open input file \n" );
        print "============After open infile=====================\n";
    while(<INF>) {
             if($_ =~ /$index/ )
              { 
                chomp $_;
                @temp2 = split (/\s+/,$_);
                printf OUT (@temp2);
#                 printf OUT ("%-10s    %7d %s   %7.2f %s %7d %s \n",
#                           $temp2[5],$temp2[7], $temp2[8], $temp2[9], $temp2[10], $temp2[11], $temp2[12]);
              }

           if ($index < 2000) { $index = $index +1;}
           else {$index = 2000;}

        }    # whole
#     }      # for

        close (INF) || die "cannot close input file !!";
    close (OUT);
#rename("$outfile1", "$infile.txt");
        print "  data is in $outfile. \n\n";

Saída do script

0x30002;0x88A3;0xF0000D01;0xF0000D01;0xF0000D0D;0xF0000D19;0xF0000105;0x40109801;0xF3802001;0x480C7004;0xF0000010;0x54359026;
    
por Tree_Chee 18.06.2018 / 03:51

1 resposta

0

Não está claro o que você deseja alcançar. Você deve concluir sua pergunta com uma explicação clara do que deseja, um exemplo mínimo de seu código (sem comentários desnecessários e código irrelevante) e com a saída esperada para a entrada que você apresenta. Se é apenas sobre a remoção de 0x no arquivo, isso é suficiente:

perl -wple's/0x//g' input.file
    
por 18.06.2018 / 13:14

Tags