Сортировка CSV-файла по первому столбцу, игнорирование заголовка

Я нашел это в другом вопросе после размещения сообщения о вознаграждении...

* Ctrl и стрелки не работают в putty! Что мне делать?

putty инвертирует смысл режима клавиш курсора на ctrl, что немного трудно для tmux определить правильно. Чтобы получить правильные клавиши ctrl, измените настройки terminfo так, чтобы kUP5 (Ctrl-Up и т.д.) были скорректированными версиями, и отключите smkx/rmkx, чтобы tmux не менял режим. Например, с помощью этой строки в .tmux.conf (при условии, что TERM установлен на xterm):

set -g terminal-overrides "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"

Обратите внимание, что это будет работать только в tmux 1.2 и выше.

https://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ

6
15.02.2017, 02:32
3 ответа

Команда Sort не имеет опции исключения заголовка. В результате вы можете обмануть эту операцию, используя :

sort <(tail -n+2 yourfile)

Этот специальный синтаксис tail получает ваш файл со второй строки до EOF.

Разумеется, результаты сортировки также не будут включать заголовок.

Вы можете выделить заголовок с помощью команды head -n1 yourfile, которая выведет только первую строку вашего файла = ваш заголовок.

Объединить их вместе вы можете командой:

head -n1 yourfile && sort <(tail -n+2 youfile)
#or
head -n1 yourfile && tail -n+2 yourfile |sort
9
27.01.2020, 20:22

Используя csvkit :

$ csvsort -c 1 file.csv

или просто

$ csvsort file.csv

Разница в том, что первая команда будет использовать только первый столбец, а вторая будет использовать все (как sort ).

4
27.01.2020, 20:22

Я предполагаю, что вы хотите сохранить заголовок: перенаправить содержимое файла в сгруппированную конструкцию:

{
    # grab the header and print it untouched
    IFS= read -r header
    echo "$header"
    # now process the rest of the input
    sort
} < file.csv
8
27.01.2020, 20:22

Теги

Похожие вопросы