Невозможно сравнить все руководства GNU Unix со всеми руководствами Unix в Mac - PullRequest
1 голос
/ 23 марта 2009

Я хотел бы сравнить все руководства GNU Unix и руководства Mac для Unix по sdiff.

Я не знаю, как вы, например, просматриваете все руководства Mac для Unix и затем сохраняете их в файл.

Сравнение можно выполнить с помощью следующего кода, когда руководства находятся в двух файлах

sdiff <(file1) <(file2)

Возможно, существует некоторый индекс имен команд Unix, так что мы можем сделать следующее

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

Как вы можете сравнить все руководства GNU Unix со всеми руководствами Unix в Mac?

[править]

Руководства для Mac находятся по адресу / usr / share / man / man [1-9] / *. У меня проблема с кодировкой, когда я пытаюсь их отследить.

Другая проблема заключается в том, чтобы найти расположение руководств Coreutils.

Ответы [ 3 ]

2 голосов
/ 23 марта 2009

GNU означает (G) NU - это (N) или (U) nix. GNU не основан никоим образом на UNIX, это не может быть связано с вопросами авторского права и лицензирования.

Большая часть документации GNU была написана в формате texinfo (который впоследствии Debian преобразовал в формат roff (man), так как пользователям нужны страницы руководства). Документация никоим образом не основана на документации BSD, все в GNU было написано с нуля.

Попытка провести различие между ними - это все равно, что разнести словарь по тезаурусу. Вы обнаружите, что оба они содержат много одинаковых слов, но совершенно разные книги, написанные совершенно разными людьми.

Документация никоим образом не объясняет различия между GNU и BSD (и расширением MacOS).

2 голосов
/ 23 марта 2009

Ваша цель, определить различные параметры для различных версий BSD и GNU / Linux различных программ, будет несколько утомительной. Полезно отметить, что есть и другие варианты всех команд. Существуют версии System V, а также версии BSD и GNU, и Mac использует мешанину из всех 3. В любом случае, в качестве отправной точки, сами файлы заполняются макросами форматирования, которые вас не интересуют. вывод команды man через 'col -b' для получения данных, которые вы можете просмотреть. С точки зрения генерации списка команд, вы можете просто 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
0 голосов
/ 23 марта 2009

Все справочные страницы существуют в / usr / share / man / *; Я не уверен, что вы пытаетесь достичь здесь. Mac работает на BSD, поэтому большинство приложений будут такими же, как те, которые вы найдете на компьютере BSD. Если вы все еще хотите это сделать, вам нужно получить страницы руководства тех же приложений в * nix, что и в Mac, а также ту же версию (поскольку страница руководства может измениться). И да, я бы сказал, что делает diff / usr / share / man / man [0-9] / * и расширенный tar всех man-страниц из linux box.

...