webForumDet fria alternativet

Radbryt / regexp

1 svar · 313 visningar · startad av Joakim

JoakimMedlem sedan dec. 199982 inlägg
#1

Hellu,

sitter o irriterar mig lite på en sak, får textfiler med diverse innehåll från olika leverantörer, som sedan behandlas av script jag skrivit och sist läggs in i en gemensam databas.

Irritationen uppstår på grund av radbryt i de olika textfilerna. Min server är ju en linuxburk, och det verkar som vissa av mina leverantörer skapar filerna på windowsmaskiner och att just radbryten förvirrar mina script.

I vissa filer matchar varken $ eller \n radbrytningar, så det måste vara något annat.

Kan jag enkelt konvertera filen till att använda linuxradbrytningar eller kan jag skriva om mina regexp för att matcha även dessa knasiga radbrytningar. För att göra mina script så exakta som möjligt behöver jag matcha radbrytningar också, för att skriva rätt data till min databas.

Några idéer?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Om du läser in innehållet i filen till $data så borde du kunna göra så här för att ersätta Mac (cr), Win (cr/lf) till Unix (lf):

$cr=chr(13); $lf=chr(10);
$data =~ s/$cr$lf?/$lf/g;
121 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
118 ms — hämta tråd, inlägg och bilagor (db)