mikrocontroller.net

Forum: PC-Programmierung Dateinamen mit Liste vergleichen


Autor: 8AF6lUf8OT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eine Liste mit Dateinamen, und ein Verzeichnis mit Dateien.
Diese beiden sollen in Übereinstimmung gebracht werden, d.h. ich will 
wissen, welche Einträge in der Liste tatsächlich als Datei im 
Verzeichnis vorhanden sind, welche nicht, und welche im Verzeichnis 
vorhanden sind, aber nicht in der Liste.
Zur Steigerung des Schwierigkeitsgrades sind die Namen nicht unbedingt 
exakt, sondern können teils übereinstimmen.

Gibt es für sowas schon etwas Fertiges?

Autor: kHz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für einfache Fälle:  fc /?
fc datei1.txt datei2.txt > ergebnis.txt

Für spezielle Fälle importiere die Daten als
datei1.csv und datei2.csv ins Excel und mach damit was Du willst. oder 
/?

Autor: olibert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welches Betriebssystem ?  Mit Unix-aehnlichen Betriebssystemen laesst 
sich das einfach mit einem Shellscript erledigen.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'ls -1' für das Listing, ggf. mit 'sort' sortieren, dann mit 'diff' 
vergleichen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
8AF6lUf8OT schrieb:
> Zur Steigerung des Schwierigkeitsgrades sind die Namen nicht unbedingt
> exakt, sondern können teils übereinstimmen.

anfang, ende oder reicht es schon wenn der . übereinstimmt?

Autor: c♯-Hasser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven P. schrieb:
> 'ls -1' für das Listing, ggf. mit 'sort' sortieren, dann mit 'diff'
> vergleichen.

"ls -l" ist schonmal schlecht, das vergleicht dann auch noch Besitzer, 
Rechte, Datum, Größe usw.

Und:

8AF6lUf8OT schrieb:
> ... sind die Namen nicht unbedingt
> exakt, sondern können teils übereinstimmen.

deswegen ist "sort" und "diff" auch nicht wirklich dafür zu brauchen.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
c♯-Hasser schrieb:
> Sven P. schrieb:
>> 'ls -1' für das Listing, ggf. mit 'sort' sortieren, dann mit 'diff'
>> vergleichen.
>
> "ls -l" ist schonmal schlecht, das vergleicht dann auch noch Besitzer,
> Rechte, Datum, Größe usw.
Lies bitte nochmal.

Darüber ist das Unix-diff dafür ziemlich ideal, da es Unterschiede 
zwischen Dateien ermittelt. Daher erkennt man (nach Sortierung) recht 
schön, welche Dateinamen sich ähneln.

Autor: 8AF6lUf8OT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Tipps soweit. Es fehlt noch ein Detail: es sind 
unterschiedlich viele Elemente. Da nützt diff leider nichts, oder?

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch, da funktioniert diff ganz ausgezeichnet. Wenn die Namen sortiert 
sind, werden eben alle Zeilen der ersten Datei, die in der zweiten Datei 
fehlen, als Unterschied ermittelt, bis wieder Zeilen übereinstimmen.

Je nach Variante des diff-Programms funktioniert das unterschiedlich 
gut.

Autor: 8AF6lUf8OT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke, ich werde es ausprobieren!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.