Ich habe ein einzeiligen Perl-Skript (Perl v5.10.1), die in einer Art und Weise verhält, die ich nicht verstehen kann, oder erklären:Perl/e regexp Hinzufügen unerwartetes Zeichen
$ cat packer-build.log |
> perl -MPOSIX -pe \
> 's/^(\d+)/my $x = strftime("%Y-%m-%d %H:%M", localtime($1)); print "$x "/e' | tail -5
2017-06-21 11:11 1,,error-count,1
2017-06-21 11:11 1,,ui,error,\n==> Some builds didn't complete successfully and had errors:
2017-06-21 11:11 1,amazon-ebs,error,unexpected EOF
2017-06-21 11:11 1,,ui,error,--> amazon-ebs: unexpected EOF
2017-06-21 11:11 1,,ui,say,\n==> Builds finished but no artifacts were created.
Unfiltered Ausgabe:
$ tail -5 packer-build.log
1498007467,,error-count,1
1498007467,,ui,error,\n==> Some builds didn't complete successfully and had errors:
1498007467,amazon-ebs,error,unexpected EOF
1498007467,,ui,error,--> amazon-ebs: unexpected EOF
1498007467,,ui,say,\n==> Builds finished but no artifacts were created.
Beachten Sie, dass 1
nach 2017-06-21 11:11
ist, die im ungefilterten Ausgang nicht vorhanden ist.
Was bewirkt, dass dies gedruckt wird und wie kann ich den Code so ändern, dass ich die Epochzeit in Feld 1 durch eine lesbare Ausgabe ersetzen kann?
Es gibt einen Raum in dem Druck hinzugefügt wurde, fügen Sie diese Zeichenfolge in das Format, wenn – ysth
Eigentlich gewünscht wurde, dass der Raum nur soll Machen Sie es klarer, dass die "1" nicht Teil der Zeitfolge war. –