1

すべての GNU Unix マニュアルと Mac の Unix マニュアルを sdiff で比較したいと思います。

たとえば、Mac のすべての Unix マニュアルを調べてから、それらをファイルに保存する方法がわかりません。

マニュアルが 2 つのファイルにある場合は、次のコードで比較できます。

sdiff <(file1) <(file2)

おそらく、次のことができるように、Unixコマンド名のインデックスがいくつかあります

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

すべての GNU Unix マニュアルと Mac のすべての Unix マニュアルをどのように比較できますか?

[編集]

Mac のマニュアルは /usr/share/man/man[1-9]/* にあります。それらを猫にしようとすると、エンコードの問題が発生します。

もう 1 つの問題は、Coreutils のマニュアルの場所を見つけることです。

4

3 に答える 3

2

GNUは、(G)NUが(N)ot(U)nixであることを意味します。GNUはUNIXに基づいていません。著作権とライセンスの問題が原因である可能性はありません。

ほとんどのGNUドキュメントはtexinfo形式で書かれていました(Debianは後でユーザーがmanページを欲しがったのでroff(man)形式に変換しました)。ドキュメントはBSDドキュメントに基づくものではなく、GNUのすべてがゼロから作成されています。

2つを比較しようとすることは、辞書をシソーラスと比較するようなものです。どちらにも同じ単語がたくさん含まれていますが、まったく異なる人々によって書かれたまったく異なる本であることがわかります。

ドキュメントは、GNUとBSD(および拡張機能としてMacOS)の違いを適切に説明しているわけではありません。

于 2009-03-23T02:13:20.133 に答える
2

さまざまなプログラムの異なる BSD バージョンと GNU/Linux バージョンの異なるパラメーターを特定するというあなたの目標は、いくぶん退屈なものになるでしょう。すべてのコマンドには他のバリエーションもあることに注意してください。システム V 版と BSD 版と GNU 版があり、Mac は 3 つすべてのミッシュ マッシュを使用します。 「col -b」を介して man の出力を取得し、比較できるデータを取得します。コマンドのリストを生成するという点では、ls -1 /bin /usr/bin' とすれば、ほとんどの場合、次のようになります。

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
于 2009-03-23T02:50:55.597 に答える
0

すべての man ページは /usr/share/man/* 内にあります。ここで何を達成しようとしているのかわかりません。Mac は BSD で動作するため、ほとんどのアプリケーションは BSD マシンで見られるものと同じになります。それでもやりたい場合は、Mac と同じ *nix のアプリケーションと同じバージョンのマニュアル ページを取得する必要があります (マニュアル ページは変更される可能性があるため)。そしてそうです、私は diff /usr/share/man/man[0-9]/* を実行し、Linux ボックスからのすべてのマニュアルページの展開された tar を実行していると思います。

于 2009-03-23T00:53:49.043 に答える