Gelijken zoeken in een tekstbestand

Jeroen Hendrickx jeroen.hendrickx op telenet.be
Ma Jun 7 08:07:39 UTC 2010


Snel eventjes antwoorden. Er kwamen bij mij persoonlijk ook een paar 
antwoorden toe die de lijst niet gezien heeft, dus een heel korte 
samenvatting wordt in het antwoord meegegeven.

Vincent, het tekstbestand in een spreadsheet opnemen had ik inderdaad 
ook al geprobeerd, maar dat lukt niet. De "kolommen" werden in het 
script wel met tabs "gesepareerd", maar blijkbaar niet, of niet genoeg 
voor Rekenblad om ze in kolommen te gieten.

Ward, ja, je hebt gelijk, die python ga ik zeker eens bekijken wanneer 
ik daar wat meer tijd voor heb. Het ziet er tegelijkertijd erg makkelijk 
en toch erg efficiƫnt uit.

Maar Tims voorstel hiervoor uniq te gebruiken was zo snel geklaard dat 
ik de resultaten nog geen vijf minuten later kon doorsturen.

In ieder geval bedankt allen, ik heb in ieder geval weer wat geleerd.

Jeroen

Ward De Ridder schreef:
> Als je een beetje je weg kent in python is dit een fluitje van een
> cent. Ik denk dat dit doet wat het moet doen:
>
> invoer = open('input.txt', 'r').read()
> gesplitst = invoer.split("\n")
> for i in range(0, len(gesplitst)):
> 	lijnI = gesplitst[i].split()
> 	if (len(lijnI) > 0):
> 		for j in range(0, len(gesplitst)):
> 			lijnJ = gesplitst[j].split()
> 			if (len(lijnJ) > 0):
> 				if (j != i) and (lijnI[0] == lijnJ[0]):
> 					print lijnI[0]
>
> Dit ten minste als ik je goed begrepen heb, en je wil weten ofdat het
> eerste woord van iedere lijn uniek is.
> Dit is gewoon op een paar minuten in elkaar geboxt, niet echt
> uitgebreid getest, maar dit zou de eerste woorden die dubbel zijn als
> output moeten teruggeven.
> Deze code zet je in een bestandje (geef het bijvoorbeeld de naam
> dubbel.py) in dezelfde map als waar je uitvoer bestand staat (om deze
> code te laten werken moet je het de naam input.txt geven). Als je dan
> in een terminalvenster navigeert naar de map waar dit bestandje staat,
> en je start het script door
> python dubbel.py     te typen, dan zou je een lijst moeten krijgen met dubbels.
> Python is een fantastisch taaltje om dingen te automatiseren, en het
> grote voordeel is, het werkt met ieder os, en het is helemaal niet
> moeilijk om te leren.
>
> Ward
>
> Op 6 juni 2010 17:34 heeft Jeroen Hendrickx
> <jeroen.hendrickx op telenet.be> het volgende geschreven:
>   
>> Beste lijstlezers
>>
>> Voor een onderzoekje heb ik een redelijk repetitief taakje moeten
>> uitvoeren over 972 wav-files. De resultaten van elk script worden in een
>> tekstbestand (.txt) lijn per lijn weggeschreven. Nu heb ik in het
>> resulterend tekstbestand 988 lijnen, dus zestien meer dan de bedoeling
>> was. Er staan geen lege interlinies.
>> Ik geef zo een lijntje om jullie een idee te geven:
>>
>> 131_02_RO_1_1A_POOT      0      305.14089460960304
>>  359.5485848841854      1326.822185789753
>>
>> 131_02_RO_1_1A_POOT  is de naam van dat bestand, ik heb er in de gehele
>> file dus een paar dubbel. Heeft iemand van jullie een idee hoe ik dat
>> kan terug vinden zonder elke naam te moeten copiƫren in een
>> zoek-venstertje, dat zou even omslachtig zijn als het werk tot hiertoe,
>> en geloof me...
>>
>> Ik weet dat er voor Unix/Linux erg mooie commandline teksttools zijn,
>> maar ik ben het niet gewoon om hiermee te werken.
>>
>> Eender welke tip is welkom,
>>
>> Jeroen
>>
>> --
>> Ubuntu-NL mailing list
>> Ubuntu-NL op lists.ubuntu.com
>> Info/Uitschrijven: https://lists.ubuntu.com/mailman/listinfo/ubuntu-nl
>>
>>     
>
>   





Meer informatie over de Ubuntu-NL maillijst