Ergebnis 1 bis 4 von 4

Thema: Zwei Dateien - Problem Differenz auszugeben

  1. #1
    Avatar von syrius
    Registriert
    Mar 2015
    Beiträge
    2,124
    Gefällt mir!
    1,233
    Du gefällst: 2,816

    Zwei Dateien - Problem Differenz auszugeben

    Guten Morgen,

    habe aktuell ein Problem aus zwei unterschiedlichen Dateien die Differenz zu ziehen.

    Folgende Ausgangssituation

    datei_archiv.db - 148360 Zeilen
    datei_current.db - 148351 Zeilen

    Differenz sind also 9 Zeilen. Wichtig ist für mich nun aus der datei_archiv.db die fehlenden 9 Zeilen aus datei_current.db zu erhalten.

    Mein Befehl dazu lautet: cat datei_archiv.db | fgrep -vf datei_current.db

    Ergenis = keines
    was bedeuten müsste, dass es keine Unterschiede zwischen beiden Dateien gibt. Jetzt aber zum Nächsten...

    cat datei_archiv.db | sort | uniq | wc -l
    sowie
    cat datei_archiv.db | wc -l
    = 148360 Zeilen

    cat datei_current.db | sort | uniq | wc -l
    sowie
    cat datei_current.db | wc -l
    = 148351 Zeilen

    Ich kann also durch "sort | uniq" ausschließen, dass in einer Datei doppelte Inhalte vorhanden sind.

    Wie komme ich nun an die fehlenden 9 Zeilen die in datei_current.db fehlen ?

    Gruß
    SzeneBox.org bei Telegram https://t.me/szenebox
    Nach Oben

  2. Werbung - Hier werben?
  3. #2
    Senior
    Registriert
    Jan 2018
    Beiträge
    308
    Gefällt mir!
    170
    Du gefällst: 131
    1) sort uniq auf beide datein
    2) beide datein aus 1) zu einer zusammenfassen
    3) zählen wie oft jede zeile jeweils vorkommt bspw: https://unix.stackexchange.com/a/170044
    4) per regexp einfach gucken welche zeilen nur 1 mal vorkommen: ^1(\s)+(.*)$

    sehr hässliche lösung aber wenn du das problem nur 1mal hast sollte das passen

    also im terminal irgendwas in diese richtung

    PHP-Code:
    export f1=datei_archiv.db && \
    export f2=datei_current.db && \
    export tmp=tmp.txt && \
    sort -du "$f1&> "$tmp&& sort -du "$f2>> "$tmp&& \
    cat "$tmpsort uniq -grep -wohP '^(\s)*1(.*)$' && \
    rm "$tmp
    Geändert von masterholdy (08.12.2018 um 16:30 Uhr)
    Nach Oben

  4. #3
    Senior Avatar von Nimbus
    Registriert
    Oct 2015
    Beiträge
    561
    Gefällt mir!
    96
    Du gefällst: 573
    Wie wäre es mit diff?
    Nach Oben

  5. #4
    THEMENSTARTER

    Avatar von syrius
    Registriert
    Mar 2015
    Beiträge
    2,124
    Gefällt mir!
    1,233
    Du gefällst: 2,816
    Die Lösung war einfacher als erwartet.

    cat datei_archiv.db | fgrep -vFx -f datei_current.db

    Code:
    -F, --fixed-strings
    Interpret PATTERN as a (list of) fixed strings
    
    -x, --line-regexp
    Select only those matches that exactly match the whole line.
    SzeneBox.org bei Telegram https://t.me/szenebox
    Nach Oben

Ähnliche Themen

  1. Moderne App für Zwei-Faktor-Authentisierung
    Von MongoBongo im Forum Daily Talk & Offtopic
    Antworten: 5
    Letzter Beitrag: 24.05.2021, 18:35
  2. posten mit zwei Cryptern
    Von Professor Chaos im Forum IntelligeN
    Antworten: 1
    Letzter Beitrag: 19.03.2019, 12:50
  3. Problem beim Upload von Rapigator-Dateien
    Von Dr.Byte im Forum Filecrypt.cc
    Antworten: 2
    Letzter Beitrag: 21.12.2017, 11:27
  4. W-LAN Vernetzung über zwei Standorte
    Von Grey im Forum Technik / Hardware & Software
    Antworten: 12
    Letzter Beitrag: 27.03.2015, 09:26

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org