сортировать несколько вкладок, но игнорируя пробелы - PullRequest
1 голос
/ 07 июля 2011

У меня есть такой файл данных (\ t представляет вкладки):

short line\t    \t    \t    \t    \t    3
very long line with lots of text\t\t    2

Как я могу отсортировать его по второму столбцу с помощью сортировки?Другими словами, я хочу установить разделитель в виде нескольких вкладок, но не пробелов.

Ответы [ 3 ]

1 голос
/ 07 июля 2011

Кажется, что разделитель полей для sort должен быть одним символом, поэтому эта команда:

sort -t $'\t' -k2 file

не будет обрабатывать несколько вкладок как один разделитель: она будет сортировать пустое 2-е поле дляобе строки.

Эта команда успешно найдет второе поле, но она изменяет текст:

tr -s '\t' < file | sort -t $'\t' -k2

Обратите внимание, что tr интерпретирует двухсимвольную строку "\ t" каксимвол табуляции, в то время как sed -t нет.Просто слабость в том, как реализованы разные команды.

0 голосов
/ 07 июля 2011

Установка разделителя полей на что-то другое выполняется с помощью параметра -t .Но передать символ табуляции может быть сложно, поэтому решение может выглядеть так:

sort -t "$ (echo -e '\ t')" -k 2 file.txt

0 голосов
/ 07 июля 2011
sort -k2 -t'        ' test.txt

сработало из коробки для меня.Введите TAB внутри ' ' как Cv Tab в bash

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