Переключение раскладок клавиатуры из док-станции Plank

С помощью этого ввода вы можете просто указать sort начать сортировку строки с символа # . Сообщите ему, что у вас есть # -delimited полей, и вы хотите использовать второе в качестве ключа сортировки (или, что эквивалентно, учитывая, что в каждой строке есть только один # , который вы хотите использовать все поля, начинающиеся со второго в качестве ключа сортировки).

sort -t '#' -k 2

Если несколько свойств имеют один и тот же цвет, добавьте параметр -s , чтобы сохранить исходный порядок между свойствами с одинаковым цветом. В качестве альтернативы, передайте -k 1,1 после -k 2 , чтобы использовать имя свойства в качестве вторичного ключа сортировки (обратите внимание, что любой отступ также включен в этот вторичный ключ сортировки).

Этого должно быть достаточно для вашего случая использования. Если ваш реальный вариант использования более сложен, вам может потребоваться массировать ввод перед его сортировкой. Чтобы использовать sort для сортировки данных, в которых ключ сортировки не может быть напрямую идентифицирован в данных, общая идея состоит в том, чтобы использовать инструменты преобразования строк, такие как sed или awk, чтобы сделать копию ключа сортировки в начале строку, затем отсортируйте и, наконец, удалите скопированный ключ сортировки. Вот метод, примененный к этому варианту использования в качестве иллюстрации, с дополнительным шагом преобразования названий цветов в шестнадцатеричные значения в скопированном ключе сортировки (оригинал не изменяется).

sed 's/^.*color: *\([^;]*\);/\1;&/' |
sed 's/^black;/#000000;/; s/^red;/#ff0000;/; #etc.' |
sort |
sed 's/^[^;]*;//'
1
12.10.2015, 16:32
0 ответов

Теги

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