[grep] exacte string opzoeken uit bestand

Pagina: 1
Acties:

  • Palomar
  • Registratie: Februari 2000
  • Niet online
Het volgende: ik heb 2 lijsten. Nu wil ik met grep uit lijst 1 alle woorden filteren die ook al in lijst 2 staan:

code:
1
grep -vf lijst2.txt lijst1.txt


lijst1.txt en lijst2.txt zijn dus allebei bestanden. Als ik bovenstaand commando gebruik haalt ie echter niet de exacte string weg, maar ook gedeeltes van een woord. Bijv. in lijst2.txt staat het woordje 'en'. Resultaat is dat in lijst1.txt woorden als 'dieren', 'enkel', 'mening' etc. etc. ook weggehaald worden, omdat 'en' erin voorkomt'.

Ik zoek een oplossing zodat alleen de exacte woorden weg worden gehaald. In dit geval alleen het exacte woordje 'en' (en zo staan er nog een paar honderd woorden in die lijst).

  • RagaBaSH
  • Registratie: Januari 2001
  • Laatst online: 27-11-2025

RagaBaSH

Huttenbouwer

kijk eens of je wat kan met "diff"

Zes pallets, een paar vierkante kilometer dekzeil en een zooi verroeste spijkers is geen troep. Dat is een hut in ontkenningsfase.


  • Palomar
  • Registratie: Februari 2000
  • Niet online
Ben bang dat diff in dit geval niet (makkelijk) gaat werken. Maar volgens mij ben ik eruit... Grep heeft ook nog een parameter -w welke zo te zien precies voor mijn doel geschikt is. Had het net al geprobeerd na lezen van de manpage, maar het werkte niet ws. door een tikfoutje ofzo.

code:
1
grep -wvf lijst2.txt lijst1.txt

heb ik nu. Ik zal nog even goed checken of het idd klopt.

  • JeroenE
  • Registratie: Januari 2001
  • Niet online
eventueel kan -i ook nog handig zijn als er verschillen in HoOfDlEtTeRs zijn tussen beide lijsten.

  • Palomar
  • Registratie: Februari 2000
  • Niet online
Ik heb nog een ander vraagje waarvoor ik dit topic maar even misbruik ;) Ik weet niet of het mogelijk is met grep (heb niks kunnen vinden), maar ik wil van een genummerde lijst alleen de regels selecteren die een nummer hoger dan 50 ervoor hebben staan.

Dus:

code:
1
2
3
4
5
6
7
54 jan
53 piet
52 klaas
51 joop
50 jantje
49 karel
etc.

de nummers zijn dus geen regelnummer, maar ze staan echt in het bestand zelf. Nu wil ik alles hoger dan 50 selecteren en daar kom nik niet uit :(
Iemand een idee?

  • JackBol
  • Registratie: Maart 2000
  • Niet online

JackBol

Security is not an option!

cat lijst.txt |awk '{if ($1 > 49) print $0}'

De actuele opbrengst van mijn Tibber Homevolt


  • Palomar
  • Registratie: Februari 2000
  • Niet online
thanx dat werkt :) _/-\o_

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Dirk-Jan schreef op dinsdag 10 januari 2006 @ 17:14:
cat lijst.txt |awk '{if ($1 > 49) print $0}'
cat abuse :o ;)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 07-02 09:48

TrailBlazer

Karnemelk FTW

zeg dan ook ff hoe het beter moet
awk '{if ($1 > 49) print $0}' filenaam
zo dus afaik

  • JackBol
  • Registratie: Maart 2000
  • Niet online

JackBol

Security is not an option!

TrailBlazer schreef op dinsdag 10 januari 2006 @ 19:01:
zeg dan ook ff hoe het beter moet
awk '{if ($1 > 49) print $0}' filenaam
zo dus afaik
awk '{if ($1 >= 50) print $0}' filenaam

op het helemaal compleet te maken... anders draait mijn programmeerdocent zich om in zijn graf ;)

[ Voor 11% gewijzigd door JackBol op 10-01-2006 19:03 ]

De actuele opbrengst van mijn Tibber Homevolt

Pagina: 1