Сортировка .csv файла по алфавиту не работает правильно, когда есть дефис

Я хочу отсортировать файл .csv, который содержит разные имена. Но есть проблема, когда имя имеет дефис в начале.

Я пробовал такие вещи, как:

sort -k1 -t sort -k1 -g -t sort -k1 -n -t 

вход:

 other data Acid other data Acid -acid Acid -acid Acid etc. 

выход:

 random data Acid -acid -acid Acid -acid etc. 

хочу:

 -acid -acid -acid Acid Acid etc. 

One Solution collect form web for “Сортировка .csv файла по алфавиту не работает правильно, когда есть дефис”

Фон

Неясно, какую версию sort вы используете, но в системе CentOS 7.x, использующей эту версию сортировки:

 $ sort --version sort (GNU coreutils) 8.22 

И этот пример входного файла:

 $ cat file other data Acid other data Acid -acid Acid -acid Acid 

Это выглядит в соответствии с тем, что вы ищете в выходных данных:

 $ sort -k1 file -acid -acid Acid Acid Acid Acid other data other data 

Язык и язык

В приведенном выше, моя локаль установлена ​​следующим образом:

 $ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

Вы можете получить полный список с помощью этой команды:

 $ locale -a aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER aa_ER@saaho ... 

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

 $ LC_ALL=C sort -k1 file -acid -acid Acid Acid Acid Acid other data other data 

Если у вас есть локаль, такая как de_DE , сортировка будет другой:

 $ LC_COLLATE=de_DE sort -k1 file Acid Acid Acid Acid -acid -acid other data other data 

Опять же, чтобы контролировать это, вы можете установить локаль на C

Рекомендации

  • Locale (компьютерное программное обеспечение) – Википедия
  • Locale – ArchLinux Wiki
  • Сортировка по дате
  • Как сортировать имена файлов в числовом порядке и измененный порядок времени?
  • сортировать данные ls пользователями
  • Самый простой способ подсчета строк, соответствующих определенным шаблонам, включая «0», если строка не найдена?
  • Установленный coreutils на CentOS для sort -human-readable флага, но он все еще не работает
  • Печатать случайные строки в соответствии с порядком исходного файла
  • Как я могу сортировать файл .txt по двум столбцам?
  • Добавить слова в список слов с помощью sort -u avoinding duplicata
  • Различные результаты OS X / Linux с «find PATH -mount \ (-type f -o-type d \) -print0 | LC_ALL = C sort --zero-terminated> OUTPUT.txt "
  • Сравните и распечатайте данные из разных текстовых файлов на один в Shell
  • Почему эта команда не сортируется на основе индекса uniq?
  • Interesting Posts

    Есть ли инструмент для быстрого поиска ключевых слов во многих файлах PDF?

    Могу ли я добавить правило iptables изнутри программы C Linux только с возможностями или мне нужно обязательно root?

    автоподключение зашифрованного USB

    для каждого с массивом с несколькими элементами

    используя ls в bash

    Как заблокировать KDE-сессии всех других пользователей

    Кэш всех паролей паролей gpg сразу? Предотвратить необходимость ввода нескольких паролей в gpg?

    Как установить ссылку на оригинальный каталог, связав ссылку с этим каталогом?

    Тестирование сети интрасети

    Cygwin: выполните установку актуальной проблемы

    Включает ли Fedora все форматы фильмов из коробки?

    Как сделать mksh для цикла перейдите от 1 к N

    Клиент и сервер OpenVPN на одном компьютере – сервер не разрешает подключения, когда клиент подключен

    Как реализованы сигналы в Linux?

    Что можно сделать, чтобы ускорить загрузку Embedded Linux?

    Linux и Unix - лучшая ОС в мире.