如何反转od命令的动作?

问题描述

如何撤销此命令的操作: od -A n -t x1 我发现只有命令xxd -r,但对我不起作用。

解决方法

问题:如何撤销此命令的操作:od -A n -t x1

答案:您不能。

您提供的命令将删除重复的行。要反转该命令,您需要将那些重复的行放回去,这需要您知道每行重复多少次。但是您提供的命令也会删除该信息。

如果我们假设没有重复的行(或者如果您将-v添加到od来保留它们),则可以使用xxd -p -r

请注意,xxd -r旨在颠倒 xxd的输出。它不用于反转任何其他程序的输出,包括od。但是,至少在我的测试中,它可以应付od -A n -t x1输出中的空格。


编辑:以下段落旨在阐明我在上面的内容。

xxd -r用于反转xxd的输出。解决此问题的起点应该是运行xxd并将其输出与odod -A n -t x1的输出进行比较。事实证明,xxd的输出与odod -A n -t x1的输出非常不同,因此我们期望xxd -r失败。

接下来要看的是是否可以传递xxd一些额外的参数,以使其输出看起来更像od的输出;然后可以将相同的参数添加到xxd -r(仅适用于某些参数)。例如,您可以使用xxd -p反转xxd -p -r的输出。 xxd -p的输出看起来与od -A n -t x1的输出更相似吗?是。实际上,除了od使用不同的行长和添加空格之外,输出是相同的。

现在使输出实际上相同是一个稍微困难的问题。但是,至少根据我的测试,您不必这样做。您只需将od -A -n -t x1的输出直接传递到xxd -p -r

如果要使输出实际上相同,则应该能够使用-w的{​​{1}}参数并通过od用管道输送输出。