Числовая сортировка Bash дает разные результаты, когда столбцы выбираются одновременно, а не вместе.

Откройте этот файл с помощью вашего любимого текстового редактора, я использую здесь nano :

sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf

По умолчанию:

[connection]
wifi.powersave = 3

Измените значение на 2 . Перезагрузитесь, чтобы изменения вступили в силу.


Возможные значения для поля wifi.powersave :

NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (0): use the default value
NM_SETTING_WIRELESS_POWERSAVE_IGNORE  (1): don't touch existing setting
NM_SETTING_WIRELESS_POWERSAVE_DISABLE (2): disable powersave
NM_SETTING_WIRELESS_POWERSAVE_ENABLE  (3): enable powersave

(Неофициальный источник на GitHub для этих значений.)

2
26.07.2018, 10:32
1 ответ

В спецификации ключа A -k1,2 указано один ключ , который начинается в начале первого столбца (включает ведущие пробелы, поскольку разделителем столбцов по умолчанию является переход от непустого к пустому) и заканчивается в конце второго столбца.

Важно понимать, что это всего лишь один ключ. Если вам нужны два ключа, вам понадобятся две опции -k . При сортировке sort сравнивает строку «1 50» с «1 1000» численно. Для числового сравнения эти строки преобразуются в числа с учетом начальной части (без начальных пробелов), которая выглядит как допустимое число. Итак, мы будем сравнивать 1 и 1 . Поскольку они равны, sort вернется к резервной сортировке, чтобы определить связи, которые являются лексическим сравнением всей строки.

С -n -k1,1 -k2,2 , sort сравнивает «1» с «1» , а затем поскольку это ничья, учитывает второй ключ ( «50» vs «1000» ).Поскольку это числовая сортировка, -n -k1 -k2 также будет работать (где -k1 задает ключ, который начинается в первом поле и заканчивается в конце строки, то же как полная линия).

5
27.01.2020, 21:56

Теги

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