xxd:如何在不添加“00000000:”的情况下简单地恢复?

xxd: how to simply revert without adding "00000000:"?

有时我的文件中有不需要的字符(数据库表、git 内容等)。当我用 xxd 列出它们时,我有 UTF-8 代码,例如:

e28099

我想知道bash中的这个字符是哪个,所以我输入:

echo -n '00000000: e28099' | xxd -r

我会

在控制台上。是否可以不总是包含那些零 (00000000: )?那么我可以输入 xxd 的任何参数吗:

echo -n 'e28099' | xxd -??? 结果将是 ?

我建议:

echo 'e28099' | xxd -r -p

输出:

$ perl -le'print pack "H*", $ARGV[0]' e28099
’
$ perl -Mv5.10 -Mcharnames=:full -C -e'
   $_ = pack "H*", $ARGV[0];
   utf8::decode $_;
   say;
   for my $cp ( unpack "W*", $_ ) {
      my $c = chr( $cp );
      say sprintf "%s U+%X %s",
         ( $c =~ /\p{Print}/ && !/\p{Mark}/ ) ? "[$c]" : "   ",
         $cp,
         charnames::viacode( $cp );
   }
' e28099
’
[’] U+2019 RIGHT SINGLE QUOTATION MARK

(要使它们使用 STDIN 而不是参数,请将 -le/-e 替换为 -ple,将 $ARGV[0] 替换为 $_。)