Anzeige:
Ergebnis 1 bis 6 von 6

Thema: vi oder grep profi gesucht

  1. #1
    Registrierter Benutzer
    Registriert seit
    21.03.2003
    Beiträge
    14

    vi oder grep profi gesucht

    Hi,

    Mein gestern schon genanntes Problem ist noch vorhanden. Nun habe ich zwei Ideen:
    - entweder mit dem vi im Batchmodus in einer Datei nach dem Wort "description:" suchen und von dort bis zum Dateiende die gesamten Zeilen in eine weitere Datei schreiben,
    - oder aber einen Dateivergleich mit grep:
    while read i ; do grep "$i" test1.txt ; [[ $? == 1 ]] && echo $i >> test3.txt ; done<test2.txt

    Erläuterung: in der Datei test1.txt sind Zeilen enthalten, die in der Datei test2.txt fehlen. Diese sollen durch einen "negativen" grep-Vergleich gefunden werden und in die Datei test3.txt geschrieben werden. Funktioniert aber nicht. Datei test3.txt bleibt leer.

    Habt ihr Ideen oder Anregungen?

    Danke,
    Werner

  2. #2
    Registrierter Benutzer Avatar von Detrius
    Registriert seit
    09.03.2004
    Ort
    Altena
    Beiträge
    64
    Wieso nicht diff nehmen, dass ja gerade für sowas gedacht ist?

  3. #3
    Registrierter Benutzer
    Registriert seit
    21.03.2003
    Beiträge
    14
    weil dann der gesuchte Text mehrfach auftaucht,
    dazu weitere Informationen zu den Unterschieden
    der Dateien usw.

    Zumindest weiß ich nicht, wie man das unterdrückt.

    Werner

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.09.2005
    Beiträge
    61
    Erläuterung: in der Datei test1.txt sind Zeilen enthalten, die in der Datei test2.txt fehlen. Diese sollen durch einen "negativen" grep-Vergleich gefunden werden und in die Datei test3.txt geschrieben werden. Funktioniert aber nicht. Datei test3.txt bleibt leer.
    Hallo wer_ner,

    mir scheint, Du suchst nur falsch rum ...
    Du schreibst, dass in der test1.txt Zeilen enthalten sind, die in der test2.txt fehlen,
    diese fehlenden Zeilen sollen aber gefunden werden.
    Du gibst dem $i aber den Inhalt aus test2.txt.
    Es kann aber nicht in test1.txt nach etwas gesucht werden, was nie dem $i zugewiesen wird ...
    Oder ?

    Gruss zst

  5. #5
    Registrierter Benutzer
    Registriert seit
    21.03.2003
    Beiträge
    14
    Du hast recht und so funktioniert es dann auch.

    Andere Lösung, wen`s interessiert:

    sed -n -e '/description:/,$p' test1.txt > testx.txt

    Werner

  6. #6
    Registrierter Benutzer Avatar von Stefan Feeser
    Registriert seit
    13.02.2000
    Ort
    Karlstein
    Beiträge
    50
    Hallo,

    nur mal so als Hinweis, mit grep -v kannst Du Deine Suchmuster auch invertieren. Wenn Du also z. B. mit grep -i Suchmuster1 den Text durchsuchst und dann dieses Ergebnis nach grep -v pipst und hier eben nach einem zweiten Suchmuster durchsuchst, welches eben nicht ausgegeben werden soll, funktioniert das in vielen Fällen auch.

    Beispiel:
    grep -i Suchmuster1 Datei | grep -v Suchmuster2
    Gruss

    Stefan

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •