我想通过sdiff比较所有GNU Unix手册和Mac的Unix手册。
我不知道你如何通过,例如,所有Mac的Unix手册,然后将它们保存到文件中。
当手册在两个文件中时,可以通过以下代码进行比较
sdiff <(file1) <(file2)
也许,有一些Unix命令名称的索引,以便我们可以执行以下操作
sdiff <(man *[in the index]) <(man *[in the index])
如何将所有GNU Unix手册与Mac中的所有Unix手册进行比较?
[编辑]
Mac的手册位于/ usr / share / man / man [1-9] / *。 当我试图捕捉它们时,我遇到了编码问题。
另一个问题是找到Coreutils手册的位置。
答案 0 :(得分:2)
GNU表示(G)NU是(N)ot(U)nix。在UNIX上,GNU不是基于版权和许可问题而无法实现的。
大多数GNU文档都是用texinfo格式编写的(Debian后来转换为roff(man)格式,因为用户需要手册页)。文档绝不是基于BSD文档,GNU中的所有内容都是从头开始编写的。
尝试在两者之间进行区分就像是在对词库进行区分。你会发现它们都包含许多相同的单词,但却是完全不同的人所写的完全不同的书。
文档绝不能充分解释GNU和BSD(以及扩展MacOS)之间的差异。
答案 1 :(得分: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
答案 2 :(得分:0)
所有手册页都存在于/ usr / share / man / *中;我不确定你在这里想要完成什么。 Mac在BSD上运行,因此大多数应用程序将与您在BSD机器上找到的应用程序相同。如果您仍想这样做,则需要获取* nix中相同应用程序的手册页,如同在Mac中以及相同版本(因为手册页可以更改)。是的,我会说做一个diff / usr / share / man / man [0-9] / *以及linux框中所有手册页的扩展tar。