【发布时间】:2015-10-31 04:43:48
【问题描述】:
有人可以提出解决此错误的方法吗:
cat /bin/ls |xxd -g 1 -i | xxd -r
xxd: sorry, cannot seek backwards.
但如果你这样做:
cat /bin/ls |xxd -g 1 | xxd -r
没关系。这是一个错误吗?
过去我能够执行此操作,但现在我只是想知道是否存在任何替代方案?
【问题讨论】:
-
似乎 -i 让 xxd 想要向后寻找标准输入,这当然是不可能的。也许它以前不这样做,而最近的版本开始这样做。很难说这是一个错误还是“预期行为”,但您当然可以通过在第一个和第二个命令之间使用临时文件来解决它。
-
它不想在输入流中回溯。这是说它不能在输出流中回溯。问题是
xxd -r期望读取默认的xxd输出格式,而不是xxd -i输出格式。它期望读取文件偏移量,并将0xed解释为比0xfa更早的偏移量或类似的东西。