Help!! Zoek-en-vervang tekst vraag...
9 januari 2004 - 08:21   
geplaatst door: ee
Ik heb een enorme lijst met 4164 filmtitels die ik wil verwerken in een te ontwerpen folder. Daar zitten heel veel titels tussen (+600) als:

Crossing, The
Crying Game, The
Cult Files Big Box, The
Deep End Of The Ocean, The

(maar ook , A - , An - , La - , Die - etc.)

Hoe verander ik deze met zoek-en-vervang in:

The Crossing
The Crying Game
The Cult Files Big Box
The Deep End Of The Ocean

?

Ik weet hoe het handmatig moet... maar dat is heel veel werk en slecht voor je RSI.

Iemand een idee? Kan ik met Word, Tex-Edit Plus of BBEdit dit varkentje wassen?

En dus...
Help!! Zoek-en-vervang tekst vraag...
9 januari 2004 - 11:20    reactie #1
geplaatst door: JoepieNL
Wat je zou kunnen proberen is de lijst importeren in een databaseseprogramma dat de komma leest als kolomscheiding: dan leest het programma de lijst in als 2 kolommen. Je zet dan de 2e kolom vóór de 1e en je hebt je lijstje!

Eventueel voer je eerst een zoek/vervang uit waarmee je , spatie vervangt door een tab. Tabdelimited tekst moet door een databaseprogramma gelezen worden als verschillende kolommen; Word kan dat ook (alles selecteren, tekst omzetten naar tabel, tab is scheidingsteken, komma kun je ook selecteren als scheidingsteken geloof ik...; kan het niet testen want ik heb geen Word).

succes!

Jos

Help!! Zoek-en-vervang tekst vraag...
9 januari 2004 - 11:52    reactie #2
geplaatst door: Bibster
Je kunt ff snel een PERL progje maken, en het daar doorheen halen...


#!/usr/bin/perl

$prefixes='The A La Le Die De';

while(<STDIN>)
{
       $whole=$_;
       @line=split(",",$whole);

       $last=$line[@line-1];
       $last =~ s/^\s+// ;
       $last =~ s/\s+$// ;

       if(index(lc($prefixes),lc($last))>=0)
       {
               print $last.' ';
               for($t=0;$t<@line-1;$t++)
               {
                       print "," unless $t==0;
                       print $line[$t];
               }
       }
       else
       {
               print $whole;
       }
       print "\n";
}

levert dus dit op:


[root@meerpaal root]# cat in; ./vertaal.pl <in
Crossing, The
Crying Game, The
Cult Files Big Box, The
Deep End Of The Ocean, The
Bold, The bad and the Ugly, The
blabla, A

The Crossing
The Crying Game
The Cult Files Big Box
The Deep End Of The Ocean
The Bold, The bad and the Ugly
A blabla

[root@meerpaal root]#

Als je dat niet lukt, en het is voor één keer ofzo, doe me dan ff een pb....


Gr. Paul

(Bewerkt door Bibster om 12:49, 9-01-2004)

iMac 15"/800/80/SD/512 + PowerMate + iMic + iBook 12"/800/30/CD/640/bt + iPod +Motu 828 + HP rp5430 (hehe)
Help!! Zoek-en-vervang tekst vraag...
9 januari 2004 - 18:48    reactie #3
geplaatst door: ee
Jos, Paul: dank voor de tips!!

Mijn opdrachtgever heeft uiteindelijk de tekst van uit zijn database anders te weten genereren. Maar ik ben wel benieuwd hoe ik een tekst 'ff snel door een PERL progje heen haal' (dat is toch een soort buitenlands voor mij)

Welke toeter en bel heeft men daar voor nodig?

En dus...
Help!! Zoek-en-vervang tekst vraag...
10 januari 2004 - 12:10    reactie #4
geplaatst door: Bibster
ee,

well, all you need, zit gewoon in osX hoor.... ;-)

mijn 'code'  even als textbestand opslaan, en dan in de terminal eea uitvoeren....

Maar'k geef toe dat eea nou niet std. mac werk is... eerder programmeer-boer werk.. (Dat bennik ook een beetje, dus vandaar!)
Stel je slaat de text in je thuis-map op als code.txt.. en de lijst als lijst.txt (ook tekst file dus.)
Dan ga je naar de terminal, en typt:
perl code.txt <lijst.txt >nieuwelijst.txt
en dan staat de nieuwe lijst in nieuwelijst.txt in je thuis map!

Gr. Paul

iMac 15"/800/80/SD/512 + PowerMate + iMic + iBook 12"/800/30/CD/640/bt + iPod +Motu 828 + HP rp5430 (hehe)