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

emir
Goto Top
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

Ausgedruckt am: 02.07.2022 um 03:07 Uhr

Mitglied: greyhound
greyhound 29.01.2008 um 16:29:02 Uhr
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
Mitglied: emir
emir 30.01.2008 um 07:43:54 Uhr
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
Mitglied: greyhound
greyhound 30.01.2008 um 12:45:27 Uhr
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 31.01.2008 um 14:18:24 Uhr
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
Mitglied: greyhound
greyhound 31.01.2008 um 14:37:23 Uhr
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 31.01.2008 um 15:00:14 Uhr
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...