Есть еще несколько неясных моментов (вы не говорите, какой именно вывод вы хотите), но sort -g
должен это сделать:
$ cat s.txt
FOO.A1
FOO.A1-1
FOO.A2
FOO.A3
FOO.A10
BAR.A1
BAR.B1
BAR.B1-1
$ sort -g s.txt
BAR.A1
BAR.B1
BAR.B1-1
FOO.A1
FOO.A1-1
FOO.A10
FOO.A2
FOO.A3
-g
определяется так:
-g, --general-numeric-sort, --sort = general-numeric
Сортировать по общему числовому значению. В отличие от -n, эта опция обрабатывает общие плавающие точки. Он имеет более разрешающий формат, чем тот, который разрешен -n, но имеет существенный недостаток производительности.
Но -n
тоже подходит, поэтому желаемый результат не ясен.
Исходя из ваших дальнейших обновлений, возможно, это то, что вы хотите:
$ sort -t '.' -k 2 -V < s.txt
BAR.A1
FOO.A1
FOO.A1-1
FOO.A2
FOO.A3
FOO.A10
BAR.B1
BAR.B1-1