Das Ausdrucken von Daten war bei der Eingabe nicht ähnlich und möchte einige Daten aus dem Inhalt entfernen

334
Tree_Chee

Ich möchte versuchen, den gesamten Inhalt in einer TXT-Eingabedatei zu drucken, um einige Daten zu verarbeiten, aber ich hatte ein Problem, da der Inhalt nicht gedruckt wurde. Darf ich wissen warum es so war? Vielen Dank an alle. Ich möchte den Inhalt generieren und alle "0x" entfernen.

Eingabedatei

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"; 

Ausgabe aus dem Skript

0x30002;0x88A3;0xF0000D01;0xF0000D01;0xF0000D0D;0xF0000D19;0xF0000105;0x40109801;0xF3802001;0x480C7004;0xF0000010;0x54359026; 
0
Was ist die Frage? Was ist Ihre erwartete Leistung? Zunächst einmal: ** ALLWAYS ** `use strict; verwende Warnungen; ` Toto vor 6 Jahren 1
Ich empfehle Ihnen ein Upgrade, Perl 5.6 wurde am 22. März 2000 veröffentlicht. Die aktuelle Version ist 5.26.2 Toto vor 6 Jahren 0

1 Antwort auf die Frage

0
Tomasz

Es ist sehr unklar, was Sie erreichen wollen. Sie sollten Ihre Frage mit einer klaren Erläuterung Ihrer Wünsche, einem Mindestbeispiel für Ihren Code (ohne unnötige Kommentare und irrelevanten Code) und mit der erwarteten Ausgabe für die von Ihnen vorgelegte Eingabe abschließen. Wenn es nur darum geht, 0xdie Datei zu entfernen, genügt dies:

perl -wple's/0x//g' input.file