Linux оболочка сортирует файл по второму столбцу? - PullRequest
75 голосов
/ 24 ноября 2010

У меня есть такой файл:

FirstName, FamilyName, Address, PhoneNumber

Как мне отсортировать его по фамилии?

Ответы [ 4 ]

135 голосов
/ 24 ноября 2010

Если это UNIX:

sort -k 2 file.txt

Вы можете использовать несколько флагов -k для сортировки по нескольким столбцам.Например, для сортировки по фамилии, а затем по имени в качестве прерывателя связей:

sort -k 2,2 -k 1,1 file.txt

Соответствующие параметры из "сортировки по мужчине":

-k, --key = POS1[, POS2]

начать ключ в POS1, завершить его в POS2 (начало 1)

POS - это F [.C] [OPTS], где F - номер поля, а C - номер поля.положение персонажа в поле.OPTS - это одна или несколько однобуквенных опций заказа, которые переопределяют глобальные опции заказа для этого ключа.Если ключ не указан, используйте всю строку в качестве ключа.

-t, --field-separator = SEP

использовать SEP вместо перехода от непустого к пустому

7 голосов
/ 30 мая 2012

Сортировка только по второму полю (таким образом, если совпадают вторые поля, строки с совпадениями остаются в том порядке, в котором они находятся в оригинале, без сортировки по другим полям):

sort -k 2,2 -s orig_file > sorted_file
2 голосов
/ 01 декабря 2016

FWIW, вот метод сортировки, показывающий, какие процессы используют больше всего памяти Virt.

memstat | sort -k 1 -t':' -g -r | less

Параметры сортировки устанавливаются для первого столбца с использованием: в качестве разделителя столбцов, числовой сортировки и сортировки в обратном порядке..

2 голосов
/ 16 января 2016

sort -nk2 file.txt

Соответственно вы можете изменить номер столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...