2009-03-23 4 views
1

Ich möchte alle GNU Unix Handbücher und Macs Unix Handbücher von sdiff vergleichen.Ich kann nicht alle GNU Unix Handbücher mit allen Unix Handbüchern in Mac vergleichen

Ich weiß nicht, wie Sie zum Beispiel alle Mac Unix-Handbücher durchlaufen und speichern Sie sie dann in eine Datei.

kann der Vergleich durch den folgenden Code ausgeführt werden, wenn die Handbücher in zwei Dateien sind

sdiff <(file1) <(file2) 

Vielleicht gibt es einige Index der Unix-Kommandonamen, so dass wir die folgende

tun
sdiff <(man *[in the index]) <(man *[in the index]) 

Wie können Sie alle GNU Unix Handbücher mit allen Unix Handbüchern in Mac vergleichen?

[Bearbeiten]

Mac Handbücher sind in/usr/share/man/Mann [1-9]/*. Ich habe ein Codierungsproblem mit ihnen, wenn ich versuche, sie zu katzen.

Ein anderes Problem ist, den Standort der Coreutils Handbücher zu finden.

+0

Ich bin ein wenig verwirrt darüber, was Sie‘ Ich versuche es zu tun. Versuchen Sie festzustellen, ob os x Gnu-Tools verwendet? Sie sind nicht, außer einigen Teilen der Entwickler-Toolchain (GCC). Sie verwenden meist die userland-Dienstprogramme freebsd bietet. –

+0

@Brian: Ich versuche herauszufinden, welche Befehle 'Optionen' im Vergleich zu den Befehlen in der Linux-Box entfernt hat. Zum Beispiel hat Macs uniq nur die Hälfte der Optionen in quniq, d. H. Linux uniq. –

+0

Okay, Sie können wahrscheinlich nur auf die POSIX-Optionen auf BSD-Versionen dieser Tools verlassen. Manchmal bekommst du mehr, aber das ist ein guter Anfang. Diffuse Dokumentation wird jedoch keine guten Ergebnisse bringen. –

Antwort

2

Ihr Ziel, die verschiedenen Parameter für die verschiedenen BSD vs GNU/Linux Versionen der verschiedenen Programme zu identifizieren, wird etwas mühsam sein. Es ist nützlich zu wissen, dass es auch andere Varianten aller Befehle gibt. Es gibt System V-Versionen und BSD-Versionen und GNU-Versionen, und der Mac verwendet einen Misch-Mash von allen 3. In jedem Fall werden die Dateien selbst mit Formatierungs-Makros gefüllt, an denen Sie kein Interesse haben Ausgabe von Mann durch 'Col-B', um Daten zu erhalten, können Sie diff. In Bezug auf die Liste der Befehle zu erzeugen, könnten Sie einfach ls -1/bin/usr/bin' Dann so etwas wie dies würde Sie am meisten aus dem Weg:

while read command ; do 
    man $command | col -b > output1 
    man ./path/to/GNU/$command | col -b > output2 
    diff output1 output2 | grep '^[ ]*-' > $command.diffs 
done<<EOF 
diff 
grep 
sort 
... 
... 
EOF 
0

Alle man-Seiten existieren innerhalb der/usr/share/man/*; Ich bin mir nicht sicher, was Sie hier erreichen wollen. Mac läuft auf BSD, daher werden die meisten Anwendungen denen auf der BSD-Maschine entsprechen. Wenn Sie es immer noch tun wollten, müssten Sie die Handbücher der gleichen Anwendungen in * nix wie bei Mac sowie die gleiche Version (da sich die man-Seite ändern kann). Und ja, ich würde sagen, dass ich eine diff/usr/share/man/man [0-9]/* und den erweiterten tar aller man-Seiten aus der Linux-Box mache.

+0

Ich habe Coreutils in meinem Mac, also versuche ich die Handbücher in meinem Mac zu vergleichen. @Suroot: Die Codierung scheint falsch zu sein, wenn ich versuche, alle Handbücher nach cat unter/usr/share/man/man zu sehen [0-9]/* –

2

GNU bedeutet (G) NU ist (N) ot (U) nix. GNU basiert nicht, in irgendeiner Weise auf UNIX, es könnte nicht auf Copyright- und Lizenzprobleme zurückzuführen sein.

Die meisten GNU-Dokumentationen wurden im texinfo-Format geschrieben (das Debian später in das roff (man) -Format umwandelte, da die Benutzer man-Seiten wollten). Die Dokumentation basiert in keiner Weise auf der BSD-Dokumentation, alles in GNU wurde von Grund auf neu geschrieben.

Der Versuch, zwischen den beiden zu unterscheiden, ist vergleichbar mit einem Wörterbuch gegen einen Thesaurus. Sie werden feststellen, dass sie beide viele gleiche Wörter enthalten, aber völlig unterschiedliche Bücher sind, die von ganz verschiedenen Leuten geschrieben wurden.

Die Dokumentation erklärt in keiner Weise die Unterschiede zwischen GNU und BSD (und durch die Erweiterung MacOS).