Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 无法将所有GNU Unix手册与Mac中的所有Unix手册进行比较_Macos_Unix_Manuals - Fatal编程技术网

Macos 无法将所有GNU Unix手册与Mac中的所有Unix手册进行比较

Macos 无法将所有GNU Unix手册与Mac中的所有Unix手册进行比较,macos,unix,manuals,Macos,Unix,Manuals,我想通过sdiff比较所有GNU Unix手册和Mac的Unix手册 例如,我不知道你是如何浏览所有Mac的Unix手册,然后将它们保存到一个文件中的 当手册位于两个文件中时,可通过以下代码进行比较 sdiff <(file1) <(file2) sdiff所有手册页都存在于/usr/share/man/*中;我不确定你想在这里完成什么。Mac在BSD上运行,因此大多数应用程序将与BSD机器上的应用程序相同。如果您仍然想这样做,您需要在*nix中获取与Mac中相同应用程序的手册页,

我想通过sdiff比较所有GNU Unix手册和Mac的Unix手册

例如,我不知道你是如何浏览所有Mac的Unix手册,然后将它们保存到一个文件中的

当手册位于两个文件中时,可通过以下代码进行比较

sdiff <(file1) <(file2)

sdiff所有手册页都存在于/usr/share/man/*中;我不确定你想在这里完成什么。Mac在BSD上运行,因此大多数应用程序将与BSD机器上的应用程序相同。如果您仍然想这样做,您需要在*nix中获取与Mac中相同应用程序的手册页,以及相同版本的手册页(因为手册页可以更改)。是的,我想说做一个diff/usr/share/man/man[0-9]/*和linux box中所有手册页的扩展tar。

所有手册页都存在于/usr/share/man/*中;我不确定你想在这里完成什么。Mac在BSD上运行,因此大多数应用程序将与BSD机器上的应用程序相同。如果您仍然想这样做,您需要在*nix中获取与Mac中相同应用程序的手册页,以及相同版本的手册页(因为手册页可以更改)。是的,我要说的是,做一个diff/usr/share/man/man[0-9]/*和linux系统中所有手册页的扩展tar。GNU意味着(G)NU是(N)而不是(U)nix。GNU并不是基于UNIX的,这不可能是因为版权和许可问题

大多数GNU文档都是以texinfo格式编写的(Debian后来将其转换为roff(man)格式,因为用户需要手册页)。该文档绝不基于BSD文档,GNU中的所有内容都是从头开始编写的

试图在两者之间进行区分就像将词典与同义词表进行区分一样。你会发现,它们都包含许多相同的词,但却是完全不同的人写的完全不同的书

该文档无法充分解释GNU和BSD(以及扩展为MacOS)之间的差异。

GNU表示(G)NU是(N)ot(U)nix。GNU并不是基于UNIX的,这不可能是因为版权和许可问题

大多数GNU文档都是以texinfo格式编写的(Debian后来将其转换为roff(man)格式,因为用户需要手册页)。该文档绝不基于BSD文档,GNU中的所有内容都是从头开始编写的

试图在两者之间进行区分就像将词典与同义词表进行区分一样。你会发现,它们都包含许多相同的词,但却是完全不同的人写的完全不同的书


这些文档并没有充分解释GNU和BSD(以及扩展到MacOS)之间的差异。

您的目标是为各种程序的不同BSD和GNU/Linux版本确定不同的参数,这将有点乏味。值得注意的是,所有命令还有其他变体。有SystemV版本、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
读取命令时;做
man$command | col-b>输出1
man./path/to/GNU/$command | col-b>output2
diff output1 output2 | grep'^[]*-'>$command.diff

完成您的目标是为各种程序的不同BSD与GNU/Linux版本确定不同的参数,这将有点乏味。值得注意的是,所有命令还有其他变体。有SystemV版本、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
读取命令时;做
man$command | col-b>输出1
man./path/to/GNU/$command | col-b>output2
diff output1 output2 | grep'^[]*-'>$command.diff

Done我对你想做的事有点困惑。您是否正在尝试确定OSX是否正在使用gnu工具?它们不是,除了开发人员工具链(gcc)的某些部分。他们主要使用的是freebsd提供的userland实用程序。@Brian:我试图找出Mac与Linux框中的命令相比删除了哪些命令选项。例如,Mac的uniq在quniq中只有一半的选项,即Linux的uniq。好的,您可能只能依赖这些工具的bsd版本上的posix选项。有时候你会得到更多,但这是一个好的开始。不过,不同的文档并不会产生好的结果。我对您要做的事情有点困惑。您是否正在尝试确定OSX是否正在使用gnu工具?它们不是,除了开发人员工具链(gcc)的某些部分。他们主要使用的是freebsd提供的userland实用程序。@Brian:我试图找出Mac与Linux框中的命令相比删除了哪些命令选项。例如,Mac的uniq在quniq中只有一半的选项,即Linux的uniq。好的,您可能只能依赖这些工具的bsd版本上的posix选项。有时候你会得到更多,但这是一个好的开始。但是,不同的文档不会产生好的结果。我的Mac中有Coreutils,所以我尝试比较Mac中的手册@Suroot:当我试图通过cat at/usr/share/man/man[0-9]/*查看所有手册时,编码似乎是错误的