[vim] probeer HOSTS file op te schonen dmv expressies

Pagina: 1
Acties:

  • Greyh0und
  • Registratie: December 2005
  • Niet online

Greyh0und

wandelende informatie stand

Topicstarter
Heej heej!

Ik ben aardig nieuw kwa vim en probeer momenteel dmv expressies in vim een anti-ads HOSTS file van commentaar te ontdoen, maar het lukt me niet!

elke regel commentaar begint met een '#' (al zit er soms ook commentaar na een regeltje text) en daar zoek ik op, waarna in vanaf de cursor tot aan het einde van de lijn alle letters weghaal, maar wat ik ook probeer, het lukt me niet :(

de regel code die ik heb kunnen maken met mijn beperkte vim kennis:
:g/#/D

"zoek globaal naar het # teken en voer commando D uit (die alle letters delete van de cursor (die op de # staat) tot aan de EOL marker"

maar ik denk dat ik iets fout doe, want hij zoeft door het bestand totdat ie aan het einde is, maar hij doet verder niets (behalve dat ie door het bestand scrollt)


heb ook al gegoogled op regular expressions e.d. maar geen webpagina die mij niet kan helpen :(

is er iemand die mij kan helpen???

Greyh0und


  • Juup
  • Registratie: Februari 2000
  • Niet online
Probeer eens zoiets:
code:
1
:%s/^#.*//

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • Greyh0und
  • Registratie: December 2005
  • Niet online

Greyh0und

wandelende informatie stand

Topicstarter
Juup schreef op maandag 11 augustus 2008 @ 15:58:
Probeer eens zoiets:
code:
1
:%s/^#.*//
dat werkt, maar wel alleen als er alleen comment op een regel staat

dus ik heb nog een hoop regels a la

127.0.0.1 a9rhiwa.cn #[Google.Warning]

hoe zou ik die ook op kunnen ruimen? (de comment bedoel ik dan, niet de hele regel)

[ Voor 6% gewijzigd door Greyh0und op 11-08-2008 16:11 ]

Greyh0und


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Al eens geprobeerd om de syntax van Jaaap zijn regex te doorgronden en aan te passen? :)
Dat staat namelijk wel uitgelegd in alle regex-documentatie, en er hoeft maar 1 teken aangepast.

  • Greyh0und
  • Registratie: December 2005
  • Niet online

Greyh0und

wandelende informatie stand

Topicstarter
blaataaps schreef op maandag 11 augustus 2008 @ 16:13:
Al eens geprobeerd om de syntax van Jaaap zijn regex te doorgronden en aan te passen? :)
Dat staat namelijk wel uitgelegd in alle regex-documentatie, en er hoeft maar 1 teken aangepast.
:%s/^#.*//

%s substitute globaal (deze herrinner ik me vaak als 'search and replace' :P )
/ is deel van : s
^ zoek vanaf begin van de regel
# zoek naar dit teken
. en any character (behalve EOL teken)
* weetikniet en kan ik ook niet vinden
/ is deel van : s
/ sluiting van : s, geen tekens tussen deze / en die ervoor haalt alle tekens weg ipv vervanging van...

Klopt dat ongeveer???

maar wat ik moet veranderen zou ik niet weten

[ Voor 6% gewijzigd door Greyh0und op 11-08-2008 17:13 ]

Greyh0und


  • Greyh0und
  • Registratie: December 2005
  • Niet online

Greyh0und

wandelende informatie stand

Topicstarter
:%s/^\(.*\),.*/\1/g

dit werkt ook voor mijn laatste probleem

Greyh0und


Verwijderd

Waarom moet dit eigenlijk in vim? Hier is sed veel handiger voor.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 28-01 16:23

deadinspace

The what goes where now?

Greyh0und schreef op maandag 11 augustus 2008 @ 14:56:
de regel code die ik heb kunnen maken met mijn beperkte vim kennis:
:g/#/D
D betekent delete-to-end-of-line in normal mode, maar niet in ex mode (de mode waarin je begint met : ). Geen idee of D in ex mode wel wat betekent overigens.

Ik zou denk ik je taak opsplitsen in twee delen:
  • Alle regels met alleen commentaar verwijderen
  • Alle overgebleven commentaar weghalen
Voor die eerste kun je wel iets leuks verzinnen met :g, voor die tweede lijkt :s me een betere keuze. In combinatie met de andere tips in deze thread moet je daarmee toch wel een eind komen :)

  • FiscBiker
  • Registratie: April 2003
  • Laatst online: 28-01 14:09
Greyh0und schreef op maandag 11 augustus 2008 @ 16:45:
. en any character (behalve EOL teken)
* weetikniet en kan ik ook niet vinden
. --> 1 wildcard
.. --> 2 wildcards
.* --> Eender welke hoeveelheid wildcards
http://www.cfengine.org/confdir/regex.html

En inderdaad sed of awk lijkt me hier praktischer
Pagina: 1