我正在使用 perl -e 将十六进制数(523cc261)转换为有意义的日期:
perl -e 'my $t=localtime 0x523cc261; print $t . "\n"'
Fri Sep 20 21:47:13 2013
但是我无法编写脚本,因为上面的代码需要在提示时提供值。我尝试用变量替换 523cc261
但它不起作用:
b=523cc261
perl -e 'my $t=localtime 0x`echo b`; print $t . "\n"`
Backticks found where operator expected at -e line 1, near "0x`echo b`"
(Missing operator before `echo b`?)
syntax error at -e line 1, near "0x`echo b`"
我的问题是如何通过脚本中的参数提供十进制值(523cc261
)。
最佳答案
最简单的方法是将时间作为参数传递给 Perl 脚本。我也将脚本重写得更加简洁:
% b=523cc261
% perl -E 'say scalar localtime hex $ARGV[0]' $b
Fri Sep 20 14:47:13 2013
关于Perl -e 字段替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19105634/