Datumnotering aanpassen

Status
Niet open voor verdere reacties.

McMeller

Terugkerende gebruiker
Lid geworden
11 apr 2007
Berichten
1.524
Ik heb 400 bestanden die genaamd zijn als DDMMYYYY. Dit wil ik aanpassen naar YYYYMMDD. Eigenlijk wil ik dus positie 1-2 op positie 7-8 hebben, positie 2-3 op positie 5-6 hebben en positie 5-8 op positie 1-4 hebben. Lijkt mij te automatiseren, want de input is consistent.

Regular Expression lijkt mij een manier om dit te doen, maar ik weet niet hoe ik de huidige en gewenste opbouw moet formuleren. Graag suggesties.
 
En welke taal wil je er voor gebruiken?
 
De programmeertaal uiteraard.
Omdat je dit hebt geplaatst in de sectie Overige programmeertalen.
 
Is het linux denk aan harde link in een ander path
Als je het doet zou ik het verplaatsen van dir om zo je evolutie bij te houden .
als je dan toch verandert en je kan het veranderen naar
/2016/bestanden
/2017/bestanden
bestandsnamen blijven het jaar bevatten
maar het zal iets versnellen als het over veel files gaat
en bij opkuis kan je sneller één jaar verwijderen.
 
edmoor, mijn vraag gaat over Regular Expression. Misschien hoort deze niet thuis in de categorie programmeertalen. Sorry, grotendeels onbekend terrein voor mij. Maar, iemand heeft mij vermoedelijk aan de juiste strings kunnen helpen. Ik ga straks bekijken of het werkt en zal het laten weten.

kenikavanbis, het gaat niet om Linux maar om macOS, dus wel Unix. Wat je schrijft klinkt interessant, maar gaat mijn pet te boven. Ik denk dat bovenstaand mij helpen zal.
 
Gelukt. Nogmaals, ik heb Regular Expression als programmeertaal geïnterpreteerd, maar met enige uitleg begrijp ik dat het niet in die categorie valt. Wellicht hoort het topic dus in een andere groep thuis.

De aanbevolen strings hebben inderdaad gewerkt. In dit specifieke geval, dus DDMMYYYY vervangen door YYYYMMDD, moet je zoeken naar:
Code:
(\d{2})(\d{2})(\d{4})

En het vervangen door:
Code:
$3$2$1

Ik vroeg nog wat aanvullende uitleg, en kreeg die ook:

de haakjes zijn om groepen te definiëren (die je weer kunt vervangen $1 $2 en $3) Er zijn dus drie groepen dag / maand / jaar
\d{2} betekent exact twee getallen
Als er in jouw geval meer dan 8 cijfers achter elkaar staan worden alleen de eerste acht gepakt. Als er 16 staan (achter elkaar) dan wordt er twee keer vervangen.
 
Yes, dat heb ik vandaag inderdaad geleerd. Fase twee van mijn vraag was ook: zou ik a.d.h.v. een lijst met de namen vóór en na, nu ook alle links in mijn webpage-code één keer kunnen replacen? Tot ik mij realiseerde dat het simpeler is, ik kan dezelfde aanpak toepassen. En dat is inderdaad gelukt, bovendien met zekerheid foutloos.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan