相关疑难解决方法(0)

在Bash中使用数字对字符串进行排序

我经常想要对带有数字的字符串进行排序,以便在排序时,例如 abc_2, abc_1, abc_10结果abc_1, abc_2, abc_10.我见过的每种排序机制abc_1, abc_10, abc_2都是从左边开始的.

有没有有效的方法来排序以获得我想要的结果?查看每个角色,确定它是否为数字,从后续数字中构建子串并将其作为数字排序的想法实在令人震惊bash.

没有胡子*nix guru实现了sort--sensible_numerical选项的替代版本吗?

sorting bash alphanumeric

59
推荐指数
3
解决办法
6万
查看次数

如何按版本号对文件名进行排序?

在目录"data"中是这些文件:

command-1.9a-setup
command-2.0a-setup
command-2.0c-setup
command-2.0-setup

我想对文件进行排序以获得此结果:

command-1.9a-setup
command-2.0-setup
command-2.0a-setup
command-2.0c-setup

我试过这个

find /data/ -name 'command-*-setup' | sort --version-sort --field-separator=- -k2 
Run Code Online (Sandbox Code Playgroud)

但输出是

command-1.9a-setup
command-2.0a-setup
command-2.0c-setup
command-2.0-setup

我找到的唯一方法给了我想要的输出

tree -v /data
Run Code Online (Sandbox Code Playgroud)

我怎样才能按需要的顺序对输出进行排序?

sorting bash shell version

23
推荐指数
2
解决办法
1万
查看次数

在unix/linux中以数字方式排序,其中"sort -V"不可用

我想以数字方式在文件中对显示的行进行排序.它没有像预期的那样出现.

$ cat test
abc1
abc10
abc2
abc11
abc20
abcd1
abcd10
abcd2
abcd11
abcd20
$
Run Code Online (Sandbox Code Playgroud)

输出: -

$ sort test
abc1
abc10
abc11
abc2
abc20
abcd1
abcd10
abcd11
abcd2
abcd20
$
Run Code Online (Sandbox Code Playgroud)

产量预期: -

abc1
abc2
abc10
abc11
abc20
abcd1
abcd2
abcd10
abcd11
abcd20
Run Code Online (Sandbox Code Playgroud)

请帮忙,谢谢你的支持

linux sorting bash awk sed

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

标签 统计

bash ×3

sorting ×3

alphanumeric ×1

awk ×1

linux ×1

sed ×1

shell ×1

version ×1