Файл сортировки оболочки Linux в соответствии со вторым столбцом?
У меня есть файл вроде этого:
FirstName, FamilyName, Address, PhoneNumber
Как я могу отсортировать его по фамилии?
Ответ 1
Если это UNIX:
sort -k 2 file.txt
Вы можете использовать несколько флагов -k для сортировки более чем одного столбца. Например, для сортировки по фамилии, а затем сначала в качестве ограничителя связей:
sort -k 2,2 -k 1,1 file.txt
Соответствующие опции из "man sort":
-k, --key = POS1 [, POS2]
запустите ключ в POS1, положите его на POS2 (начало 1)
POS - F [.C] [OPTS], где F - номер поля, а C - позиция символа в поле. OPTS - это один или несколько вариантов однобуквенного заказа, которые переопределяют глобальные параметры заказа для этого ключа. Если ключ не указан, используйте всю строку в качестве ключа.
-t, --field-separator = SEP
используйте SEP вместо непустого пустого перехода
Ответ 2
Чтобы сортировать только по второму полю (при совпадении вторых полей эти строки с совпадением остаются в том порядке, в котором они находятся в оригинале без сортировки по другим полям):
sort -k 2,2 -s orig_file > sorted_file
Ответ 3
sort -nk2 file.txt
Соответственно вы можете изменить номер столбца.
Ответ 4
FWIW, вот способ сортировки, показывающий, какие процессы используют наиболее виртуальную память.
memstat | sort -k 1 -t':' -g -r | less
Параметры сортировки устанавливаются в первый столбец, используя: как разделитель столбцов, числовую сортировку и сортировку в обратном порядке.