emir
Goto Top

HP-UX V.11 - Dateien vergleichen und doppelten Text anzeigen lassen

Guten Tag,

könnte mir jemand sagen, wie ich 2 Textdateien auf doppelten Inhalt überprüfen kann und dann das Ergebnis anzeigt?
Ich habe, dass Problem, dass ich mehrere Shell-Scripts auf doppelte Befehle prüfen soll.

Kann ich dass mit "diff" realisieren??

Vielen Dank schon mal im vorraus!


Mit freundlichen Grüßen
Timur

Content-Key: 79447

Url: https://administrator.de/contentid/79447

Printed on: April 19, 2024 at 22:04 o'clock

Member: greyhound
greyhound Jan 29, 2008 at 15:29:02 (UTC)
Goto Top
Hallo Timur,

es ist mir leider nicht ganz klar was Du genau tun möchtest. Vielleicht hilfst Du mir noch etwas auf die Sprünge.
Diff führt einen zeilenweisen Vergleich zweier Dateien durch. Diff bringt Dir also nur dann etwas, wenn die Files, die Du untersuchen möchtest im wesentlich identisch sind und sich lediglich einzelne Wörter unterscheiden.
Wie ich Dich verstanden habe suchst Du nach bestimmten Befehlen in verschiedenen Files.
Eine quick and dirty Lösung wäre da z.B. grep [Suchstring] *. Das liefert Dir alle Zeilen die [Suchstring] enthalten in allen Dateien im aktuellen Verzeichnis. ( Das kannst Du natürlich eingrenzen, wenn Du statt * z.B. *.sh eingibst.) Wenn Dich nur interessiert, wie oft [Suchstring] in den einzelnen Files vorkommt heißt das entsprechende Kommando grep -c [Suchstring] *.


HTH
Greyhound
Member: emir
emir Jan 30, 2008 at 06:43:54 (UTC)
Goto Top
Danke für die schnelle Antwort.

Jedoch ist das, nicht dass was ich gewollt habe. Ich soll 2 Dateien auf gleichen Inhalt prüfen und die doppelten Ergebnise auflisten. Es steht aber nicht an jeder Stelle etwas gleiches in den 2 Dateien.

Mfg
Timur
Member: greyhound
greyhound Jan 30, 2008 at 11:45:27 (UTC)
Goto Top
Hallo Timur,

Es steht aber nicht an jeder
Stelle etwas gleiches in den 2 Dateien.

Das hatte ich bereits vermutet, daher hatte ich Dich auf den Lösungsweg mit grep hingewiesen.
Allerdings müsstest Du dann wenigstens wissen wonach Du suchst.

Aber wie schon gesagt, mir ist Deine Fragestellung nicht ganz klar. Vielleicht erläutest Du das mal an einem Beispiel. Bei der allgemeinen Formulierung Deiner Frage kann man auch nur allgemein antworten.

So wie es sich jetzt für mich anhört, läuft Deine Aufgabe darauf hinaus, herauszufinden, ob ein beliebiger Text beliebiger Länge an beliebiger Stelle in verschiedenen Dateien vorkommt.

Dies dürfte in dieser Allgemeinheit praktisch unlösbar sein. Das Problem dabei ist sicher nicht der grundsätzliche Suchalgorithmus. Der ist zwar aufwendig aber lösbar. Entscheidend ist hier die Definition der Treffer. Dazu stellen sich für mich jede Menge Detailfragen, z.B. ab welcher Textlänge werden Übereinstimmungen als Treffer gewertet? Ein, zwei, zehn oder hundert Zeichen? Was ist mit Groß- Kleinschreibung? Können gesuchte Texte über mehrere Zeilen gehen? Sind Worttrenner wie Leerzeichen, Tabstopps und Zeilenumbrüche als identisch zu betrachten? Was ist bei mehreren Worttrennern in Folge? Ist der Kontext, in welchem der Text gefunden wird wichtig (z.B. Kommentarzeile oder Programmzeile)? Usw. usw.

Nach meiner Erfahrung lohnt sich ein derartiger Programmieraufwand wirklich nur bei sehr großen Datenmengen.

Ansonsten, wie vorgeschlagen grep | brain 1.0

Gruß
Greyhound
Mitglied: 39916
39916 Jan 31, 2008 at 13:18:24 (UTC)
Goto Top
Ja, diff kann das, die Ausgabe zeigt Dir dann die Unterschiede an. Erhälst Du keine Ausgabe, dann sind die Dateien identisch.

Gruß,

Martin
Member: greyhound
greyhound Jan 31, 2008 at 13:37:23 (UTC)
Goto Top
Hallo Martin,

ich widerspreche Dir ungern, aber wenn Du die Kommentare oben liest, kann diff das ganz klar nicht. Nimm einfach zwei ansonsten identische Dateien und füge bei einer am Anfang eine Leerzeile ein und Du siehst was ich meine.

Gruß

Greyhound
Mitglied: 39916
39916 Jan 31, 2008 at 14:00:14 (UTC)
Goto Top
Geht bei mir ohne Probleme. Ausgabe ist dann:

0a1


Gruß,

Martin

PS.: Habs auch einfach mit einem Space getestet - geht. Mach ich auch schon einige Zeit so...