按绝对值对整数排序

Mag*_*gus 3 sorting bash

我有一个整数列表,我想对其进行排序sort,但我想对整数的绝对值进行排序。例如7 0 5 10 -2应该给出0 -2 5 7 10(整数在我的文件中的多行中分隔)

我不认为有一个选项可以sort做到这一点,但我找不到其他命令来对行进行排序。这些-n选项按自然顺序排序,-g这不是我想要的。

我试图看一下,awk但我不知道它是否可以帮助我。

Lar*_*her 5

使用

cat numbers.txt | sed -r 's/-([0-9]+)/\1-/g;' | sort -n | sed -r 's/([0-9]+)-/-\1/g;'
Run Code Online (Sandbox Code Playgroud)
  • 第一个sed将减号放在数字后面
  • sort按数字排序
  • 第二个sed再次将减号放在数字前面