用 Perl 进制转换
现在需要把一堆十进制数转换为二进制数,在 Vim 里可以用 :'<,'>!command
来做转换。但是我发现常见的行处理程序 awk
根本搞不定进制转换,所以还是用最强大的字符处理语言 Perl 来搞。命令如下:
perl -ne 'printf("%032b\n", $_)'
如果输入是十六进制呢?加个 hex
函数就行:
perl -ne 'printf("%032b\n", hex($_))'
如果一行有多个字段,只想转换第二个呢?这就要用到 -a
参数,此时 $_
变为数组 @F
:
perl -ane 'printf("%s\t%032b\n", @F[0], hex(@F[1]))'
最后注意在 Vim 中 %
符号需要转义。
用 Perl 进制转换 由 Peng Guanwen 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。