Uit de logs van mijn SVN repository wil ik een aantal SQL commando's kunnen vissen, die tussen bepaalde revisies horen.
Ik weet dat om de logs te bekijken van revisie 100 tot 110, je het volgende commando geeft:
svn log -r100:111 <url>
Nu wil ik die data pipen door grep heen om zo de commando's eruit te halen.
De insert en update en alter tables zijn niet zo moeilijk, want die beslaan altijd 1 regel. Maar bij een create table statement, zijn het er meer.
Helaas ondersteunt mijn grep geen perl regexp (-P) parameter,want volgens mij kan ik dan meer regelen.
Maar heeft iemand een idee hoe ik dat eruit kan greppen?
VB van een create statement:
Met The Regex Coach (programma om makelijk regexen te maken) kom ik ook niet verder, want die wil steeds te 'greedy' matchen. En dat krijg ik niet uit.
Bijvoorbeeld met:
Gaat grep door met matchen tot de laatste ; ipv de eerste die deze tegenkomt.
Ik weet dat om de logs te bekijken van revisie 100 tot 110, je het volgende commando geeft:
svn log -r100:111 <url>
Nu wil ik die data pipen door grep heen om zo de commando's eruit te halen.
De insert en update en alter tables zijn niet zo moeilijk, want die beslaan altijd 1 regel. Maar bij een create table statement, zijn het er meer.
Helaas ondersteunt mijn grep geen perl regexp (-P) parameter,want volgens mij kan ik dan meer regelen.
Maar heeft iemand een idee hoe ik dat eruit kan greppen?
VB van een create statement:
code:
1
2
3
4
5
| CREATE TABLE `tableName` ( `ID` SMALLINT UNSIGNED NOT NULL , `sDescription` TEXT NOT NULL , INDEX ( `ID` ) ) ENGINE = MYISAM COMMENT = 'Beschrijving'; |
Met The Regex Coach (programma om makelijk regexen te maken) kom ik ook niet verder, want die wil steeds te 'greedy' matchen. En dat krijg ik niet uit.
Bijvoorbeeld met:
code:
1
| CREATE(.*)\((.*); |
Gaat grep door met matchen tot de laatste ; ipv de eerste die deze tegenkomt.