Hola,
Estoy intentando analizar un campo de la fecha con formato
dd/mm/YYYY HH: Milímetro: SS
la fecha tiene a veces solamente un dígito y el HH tiene alguna vez solamente un dígito ejemplo de la entrada
7/03/2001 9:09: 18.034449599, BGC, WCOM, C3400
Quiero mirar cada campo de la fecha si hay solamente el dígito I concatenar un 0 delante de él, ejemplo si el día es 7 que pongo 07, si la hora es 9 pongo 09. También quiero al elimnate el espacio.
tan para la entrada sobre la salida deseada
es 07/03/200109: 09: 18.034449599, BGC, WCOM, C3400
:
Puedo aislar la DD y quitar el espacio pero cuando no puedo para aislar el milímetro y el HH
ejemplo:
¡#! /usr/bin/perl
#use terminante;
utilizar las advertencias; mi $inputFile; mi $inputname = “Sample1Date.txt”; mi $outputfile; mi $outputname = “Sample1Date_output.txt”; mi $line; mis @lineParts; mi @linePartsDay; mi @linePartsMonth; mi "" de $temp2=;
abrirse (inputFile, “$inputname”); #open ($inputFile, “<>se abren ($outputfile, “>$outputname”) || morir “no puede abrir el archivo de salida”; mi $temp = "";
mientras que ($line = )
{
los @lineParts = partieron “\,”, $line; mi $date = $lineParts [0]; @linePartsDay = partir “\/”, $date; mi $day = $linePartsDay [0]; día de la impresión “: $day \ n”;
el #@linePartsMonth = partió “\ ^ (\ d {2}/\ d {2}/)”, $date; el @linePartsMonth = partió “\ ^ (/)”, $date;
mi $month = $linePartsMonth [0]; mes de la impresión “: $month \ n”;
#$temp2 = $date; s del =~ #$temp2 (\ s) +;
#$date = $temp2; # quitar los espacios en el medio de fecha fecha de la impresión “: $date \ n”; mi $number1 = $lineParts [1]; mi $donor = $lineParts [2]; mi $recipient = $lineParts [3]; mi $routing = $lineParts [4]; $temp = $date. “,”. $number1. “,”. $donor. “,”. $recipient. “,”. $routing; impresión $outputfile “$temp”;
}
#close $inputFile;
$outputfile cercano;
Consigo:
día: 7 (ACEPTABLE) puedo entonces mirar la longitud del día si es solamente 1 dígito concatena un 0 delante de él. mes: fecha: 7/03/20019: 09: 18 fecha: 7/03/20019: 09: 18
No sé aislar el milímetro, una vez que consigo el mes que quisiera aislar el yyyy el HH el milímetro y los SS y comprobar cada campo (una vez que tengo aislante I saber al concate).
Intenté las varios expresiones regulares para aislar el mes pero incapaz…
el #@linePartsMonth = partió “\ ^ (\ d {2}/\ d {2}/)”, $date; el @linePartsMonth = partió “\ ^ (/)”, $date;
mi $month = $linePartsMonth [0]; mes de la impresión “: $month \ n”;
Usted sabe al aislamiento para el milímetro, YYYY HH milímetro SS
|