Команда сортировки Linux: ключи с одинаковым стартом, но разная длина не сортируются в том же порядке
Я пытаюсь сортировать два файла, чтобы присоединиться к ним. Некоторые из ключей, которые я сортирую, очень похожи, и это, кажется, вызывает проблемы. Например, у меня есть два ключа: a1ke
и a1k3-b3
. Я использую команду:
sort -nk1 file.txt -o file.txt
В одном файле они отображаются в этом порядке, а в другом - в обратном порядке. Это вызывает проблемы при попытке присоединиться к файлам.
Как я могу сортировать эти файлы, чтобы они были в одном порядке?
благодаря
Не используйте параметр "-n", который сравнивается в соответствии с числовым значением строки.
-n
Compare according to arithmetic value an initial numeric string consisting of optional white
space, an optional - sign, and zero or more digits, optionally followed by a decimal point and
zero or more digits.
Вашими клавишами являются строки, а не цифры.
Вместо этого вы должны просто сделать:
sort -k1 file.txt -o file.txt
Дополнительная информация:
Вы можете видеть, что этот sort
считает ваши ключи идентичными, когда -n
используется, делая уникальный вид:
sort -un file
Вы увидите, что a1k3-b3
и a1ke
считаются равными (и поэтому испускается только один). Если вы это сделаете:
sort -u file
Результат будет содержать как a1k3-b3
и a1ke
, которые вы хотите.
Еще в рубрике
- Вопросы
- Command-line-arguments
- Команда сортировки Linux: ключи с одинаковым стартом, но разная длина не сортируются в том же порядке