WinFuture-Forum.de: [vi] Wort suchen und den Rest der Zeile löschen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Linux
Seite 1 von 1

[vi] Wort suchen und den Rest der Zeile löschen


#1 Mitglied ist offline   mujemile 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 19. Oktober 12
  • Reputation: 0

geschrieben 19. Oktober 2012 - 09:45

Hi leute,

brauche unbedingt Hilfe (Linux-Maschine im Texteditor vi)...
ich habe zum Beispiel eine Datei mit folgendem inhalt:

1|test1|Sommer|ich habe keine Ahnung|Endlich|
2|test2|Frühling|ich habe keine Ahnung|Endlich|
3|test3|Herbst|ich habe keine Ahnung|Endlich|
4|test4|Winter|ich habe keine Ahnung|Endlich|

Ich möchte nun in meiner Datei, welche erheblich mehr Zeilen hat, ab einer bestimmten Stelle ändern/löschen.
1. Suche nach "ich habe keine Ahnung" und lösche mit Suchtext bis Ende der jeweiligen Zeile...
oder
2. Lösche den Rest der Zeile ab dem dritten Pipe-Zeichen...

So sollte die Datei danach aussehen:

1|test1|Sommer|
2|test2|Frühling|
3|test3|Herbst|
4|test4|Winter|

Kann mir hier jemand kurzfristig aushelfen?

Vielen Dank schon mal...

Gruß
mujemile

Dieser Beitrag wurde von mujemile bearbeitet: 19. Oktober 2012 - 09:45

0

Anzeige



#2 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 19. Oktober 2012 - 10:01

Muss es vi sein? Ich würd das recht flott mit C# hinbekommen, was mit Mono auch unter Linux tut.
Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#3 Mitglied ist offline   mujemile 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 19. Oktober 12
  • Reputation: 0

geschrieben 19. Oktober 2012 - 10:12

Hallo,

ja... Es muss im vi sein...

Sorry..;o)
0

#4 Mitglied ist offline   DerTommy22 

  • Gruppe: aktive Mitglieder
  • Beiträge: 202
  • Beigetreten: 05. Januar 12
  • Reputation: 17

geschrieben 20. Oktober 2012 - 18:37

Das sieht irgendwie verdächtig nach einer Hausaufgabe aus, deswegen nur so viel: RegularExpression+Backreference+Delete

Rein in vi(m) ist das natürlich möglich, leichter wäre es z.B. mit awk oder Perl - man könnte ja 'cheaten' und den Buffer aus vim direkt daran übergeben :P
@EA Sports: Ich will wieder Hallenfußball ala FIFA98 :(
0

#5 Mitglied ist offline   mujemile 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 19. Oktober 12
  • Reputation: 0

geschrieben 22. Oktober 2012 - 07:18

Hallo,

wenn es eine Hausaufgabe wäre, würde ich hier nicht fragen...
Ich habe die Datei schon mit php bearbeitet und in die DB importiert, war ganz einfach...

Ich habe eine Riesendatei, welche ich nunmal mit dem vi bearbeiten und in eine Informix-Db importieren möchte...Sollte für zukünftige Arbeiten schneller gehen, als in ein php-Script zu schreiben...

Habe ich schon einige Varianten ausprobiert. Doch diesen Befehl kriege ich einfach nicht hin...

Gruß
MuJeMiLe
0

#6 Mitglied ist offline   DerTommy22 

  • Gruppe: aktive Mitglieder
  • Beiträge: 202
  • Beigetreten: 05. Januar 12
  • Reputation: 17

geschrieben 22. Oktober 2012 - 16:13

Gut, ich versteh die Schwierigkeit jetzt nicht, aber vielleicht hast du ja einfach keine/nicht genug Erfahrung mit vim und/oder RegEx.

Innerhalb von vim
:%s/ich\shabe.*//g
bzw generisch
:%s/{PATTERN}.*//g


Alternativ, mit gnu-sed
sed -i "s/ich\shabe.*//g" datei.txt
oder awk
awk -F\| '{gsub("ich habe.*", ""); print}' datei.txt > changed.txt


Das dürften die leichtesten Wege für deine Nr1 sein, Nr2 wird komplizierter und - zumindest mit meinem Wissenstand - nicht ohne weiteres in vim möglich sein, da würde ich dann wirklich auf awk oder Perl setzen.

Dieser Beitrag wurde von DerTommy22 bearbeitet: 22. Oktober 2012 - 16:18

@EA Sports: Ich will wieder Hallenfußball ala FIFA98 :(
0

#7 Mitglied ist offline   mujemile 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 19. Oktober 12
  • Reputation: 0

geschrieben 23. Oktober 2012 - 08:03

Hi,

vielen Dank... Es hat geklappt...
Du hast recht, ich habe noch nicht so viel Erfahrung mit vim...
Aber bin gerade dabei es zu ändern...;o)
0

#8 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.735
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 27. Oktober 2012 - 08:54

Für den Anfang hilft (bzw. hat mir damals sehr geholfen):
1. Einen 2-seitigen Vi Cheat-Sheet suchen, doppelseitig ausdrucken, einlaminieren und unter die Tastatur legen zum schnellen nachsehen.
2. "Reguläre Ausdrücke - kurz & gut" von Tony Stubblebine [O'Reilly-Verlag] (kostet ca. 10€) unter den Monitor legen (habe ich da manchmal immer noch liegen),
Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0