如果数字不在行首,则按数字排序

时间:2018-09-13 01:17:34

标签: linux bash sorting grep

我使用了grep -Eo '[0-9]{1,}kg' *.dat来过滤带有*kg的内容。现在,我试图按升序对它们进行排序。我从grep的输出是:

blue_whale.dat:240kg 
crocodile.dat:5kg 
elephant.dat:6kg
giraffe.dat:15kg
hippopotamus.dat:4kg
humpback_whale.dat:5kg
ostrich.dat:1kg
sea_turtle.dat:10kg

我尝试使用sort -n。但是排序不起作用。

编辑: 我有一堆文件,说明每只动物的体重和长度。我过滤了每只动物的体重。这部分很简单。然后我想按我认为只是sort -n的升序对它们进行排序。

编辑: 在我的目录中,我有很多dat文件。 它们包含的值像110000kg 24m 我需要按重量增加顺序订购

1 个答案:

答案 0 :(得分:4)

您需要以这种方式使用该命令:

grep -Eo '[0-9]{1,}kg' *.dat | sort -t: -n -k2

使用“ -t”选项将冒号指定为字段分隔符。

您可以使用-r选项来降低或倒序。