小编Joh*_*ten的帖子

如何按字符串集中两个不同分隔符之间包含的数值进行 bash 排序

我有一个文件名目录,例如:

DataFile_1.txt
DataFile_2.txt
...
DataFile_9.txt
DataFile_10.txt
DataFile_11.txt
...
DataFile_99.txt
DataFile_100.txt
DataFile_101.txt
...
Run Code Online (Sandbox Code Playgroud)

它们不是按上述顺序排列的,但我希望它们是这样的。ls 以随机顺序生成它们,例如

DataFile_100.txt
DataFile_2.txt
DataFile_19.txt
DataFile_9.txt
...
Run Code Online (Sandbox Code Playgroud)

我需要脚本的输出是按“_”和“.”之间的数值排序的文件。特点。我无法找到一种方法来使用排序命令,以人类的方式对这些分隔符之间的数值进行排序。

ls | sort -k 10 --human-numeric-sort仍然把 the 放在-8.the 之后_79.和之前_80.

bash

1
推荐指数
1
解决办法
1625
查看次数

用1990执行的C代码运行.现在重新编译,它会在旧文件上读取错误

我有一个最近在1990年编译的C程序,它读取和写入一些二进制文件.可执行文件仍然可以正常工作,读取和写入它们.我需要重新编译源代码,添加一些功能,然后使用代码,读取一些旧数据,并输出其他信息.

当我重新编译代码而没有更改并执行它时,它无法读取旧文件,当我尝试处理读入内存区域的数据时出现分段错误.我认为问题可能是前面写的二进制文件使用4个8位字节整数,8个字节长整数和4个字节浮点数.我的机器上的体系结构现在使用64位字而不是32字节.因此,当我从读入的数据中提取整数时,它会错误地对齐并设置一个超出程序空间范围的数组索引.

在Mac OS X 10.12.6上,使用它的C编译器,它可能是:

Apple LLVM version 8.0.0 (clang-800.0.33.1)
Target: x86_64-apple-darwin16.7.0
Run Code Online (Sandbox Code Playgroud)

是否有编译器开关将整数和浮点数的编译长度设置为上述值?如果没有,我如何让代码正确读取数据?

c legacy compilation

0
推荐指数
1
解决办法
286
查看次数

标签 统计

bash ×1

c ×1

compilation ×1

legacy ×1