Я пытаюсь отсортировать файл следующим образом (это список имен подпрограмм)
cfn=(1370) __lib_file_MOD_file_open
fn=(1368) __universe_MOD_general_boot
fn=(916) __universe_MOD_general_main
fn=(6142) __grid_var_MOD_get_overlap
...
в соответствии с целым числом внутри скобок. Я сначала попробовал команду сортировки как
sort -t '=' -k 2 routine_list.txt
но тогда fn = (916) приходит в конце выхода.
fn=(1368) __universe_MOD_general_boot
cfn=(1370) __lib_file_MOD_file_open
fn=(6142) __grid_var_MOD_get_overlap
...
fn=(916) __universe_MOD_general_main
но я бы хотел, чтобы числа сортировались в возрастающем порядке (916 -> 1368 -> 1370 -> ...). Можно ли сделать это относительно просто, используя несколько команд или опций?
Ответы:
Как насчет:
Тестовое задание :
-n
указывает на то, что мы сортируемt'('
устанавливает разделитель как(
-k2
устанавливает ключ вsort
качестве второго поля, т.е. начиная с цифр и заканчивая концом строки.источник
(
в качестве разделителя, а не так,=
как если бы вы использовали,(
тогда сортировка может начаться численно с самой начальной точки второго поля ..Попробуй это. Устанавливает разделитель на =, а затем использует поле 2 начиная с символа 2 и далее (игнорируя «(»).
Или даже
источник