需要一行 Perl 代码将文本文件中的每一行从 DEC 系统转换为 HEX。
在文件行123243421231245
中,有必要在输出文件中显示出来7016D857E88D
,依此类推每一行。
使用一行 perl 代码将 BIN 转换为 HEX:
`perl -ne "\$_ =~ s/([01]{8})/sprintf('%02x', oct('0b'.\$1))/egm; print \$_;" < test.txt > result.txt`
一切正常,您需要确保该命令现在将每一行从 DEC 系统转换为 HEX。
为了使用单行 perl 代码将 DEC 系统的每一行转换为 HEX,您可以使用以下命令:
此命令会逐行读取文件test.txt,使用sprintf 函数将DEC 系统中的每个数字转换为HEX,然后将结果写入文件result.txt。
在此命令中,正则表达式 (\d+) 搜索字符串中的所有整数,然后 sprintf 函数使用 %X 模式将它们转换为 HEX 格式。正则表达式中的 e 标志允许在 s 之后指定的表达式作为 Perl 代码执行,而 g 标志告诉它替换字符串中的所有匹配项,而不仅仅是第一个。
例如,对于包含行 123243421231245 和 123 的 test.txt 文件,result.txt 将分别包含行 7016D857E88D 和 7B。
请注意,如果源文件中有不包含整数的行,它们将保持不变。为避免这种情况,您可以添加条件以仅处理包含整数的字符串。例如:
这段代码将像前一段一样工作,但现在它不会处理不包含整数的字符串。