-
Hoe staan die nummers erin? Begint elke regel met een nummer en daarna wat meer tekst op de rest van de regel?
Als er verder helemaal geen cijfers in het bestand staan kun je gewoon alle cijfers zoeken en vervangen door niks (tien keer “Vervang alles” met elke keer een ander cijfer) en dan in bijvoorbeeld een tekstverwerker regelnummers toevoegen, waarna je het exporteert naar een tekstbestand. Er zullen wel andere manieren zijn, maar deze schiet me zo te binnen.
Het zal ook wel mogelijk zijn met sed maar ik krijg bijna hoofdpijn van dat soort programma’s en de voorbeelden ervoor … Nieuwe regelnummers in de terminal lukt me dan nog wel:
cat -b Factuur.txt > "Factuur genummerd.txt"
Dag Jakko,
Bedankt voor je reactie.
Is zoek eigenlijk iets waar mee ik:
Factuurnummer 345 Factuurnummer 346 etc…
Kan vervangen door
Factuurnummer 1 Factuurnummer 2 etc…
De factuurnummers staat kris/kras door het tekst bestand.
Ik moet iets gebruiken met wildcards…maar hoe precies weet ik echt niet.
Dat worden twee arrays, plus een loopje…
Pseudo code:
<br /> orig-array vullen met 357-455<br /> new-array vullen met 1-88</p> <p>index=0<br /> FOR nummer in orig-array[$index]<br /> do<br /> sed globalreplace "factuurnummer $nummer" "factuurnummer new-arrya[$index]"<br /> done<br />
Kan met Perl, kan met PHP, kan zelfs met een shell script.
EDIT:
Kan zelfs zonder arrays… Duh!Pseudo code:
<br /> orignum=455<br /> newnum=1<br /> WHILE newnum -lt 89<br /> do<br /> sed globalreplace "factuurnummer $orignum" "factuurnummer $newnum"<br /> orignum=$orignum+1<br /> newnum=$newnum+1<br /> done<br />
Voorbeeldje gevonden op Experts Exchange. Is alleen een voorbeeld, zal nog aanpassingen voor jou nodig hebben, voornamelijk die loop om de nummerseries te doorlopen. Het gedeelte dat je moet loopen heb ik aangegeven.
Daar naast kan je de fopen voor het wegschrijven van het resultaat ook naar een andere file laten schrijven, zodat je het origineel niet overschrijft.
<br /> $file = 'myfile.txt';<br /> $content = file_get_contents($file);<br /> // START LOOP<br /> $myvar = 'something new';<br /> $content = str_replace('something',$myvar, $content);<br /> // END LOOP<br /> $f = fopen($file,'w');<br /> if($f) {<br /> fwrite($f, $content);<br /> fclose($f);<br /> } else {<br /> echo 'failed to update file';<br /> }<br />
EDIT:
Klote CODE tags! Een dubbele enter maken zij maar meteen een ENDPAR/BEGINPAR van *grrr* Dat schiet toch niet op?!!!
Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.