从命令行sorting不同长度的hex数字?

如果我有一个不同长度的hex数字文件,例如

1F b c 

我怎样才能从命令行sorting他们?

Linux的解决scheme是受欢迎的,但我会使用Windows和Cygwin或gnuwin32

注意:我显然不能使用SORT'cos,这将使它们保持错误的顺序。

Solutions Collecting From Web of "从命令行sorting不同长度的hex数字?"

 cat thefile | while read line; do printf "%d %s\n" "0x$line" "$line"; done | sort -n | awk '{print $2}' 

这保留了原始的十六进制数的大/小写。

您可以使用awk脚本创建一个文件,将字符串左填充到固定长度,对结果文件进行排序,然后去除结果中的前导空格。

自从我使用awk以来已经有一段时间了,但是我记得,输出正确的东西并不困难。

尝试sort -n filename 。 手册页中的-n标志“根据字符串数值进行比较”。

更新:正如@barlop指出的那样, -n选项对十六进制数不起作用。