Сортировка файлов css по свойству цвета

Я хотел бы создать скрипт, сортирующий CSS-файл по цветам. Например:

.actions_menu_forgot_password_link:hover {color: #deca9b;} .login_popup_forgot_password_link {color: #ddeffb;} .login_popup_forgot_password_link:hover {color: #deca9b;} .trading_data_allTrades_button {color: #ddeffb; } 

Ожидаемый результат:

 .actions_menu_forgot_password_link:hover {color: #deca9b;} .login_popup_forgot_password_link:hover {color: #deca9b;} .login_popup_forgot_password_link {color: #ddeffb;} .trading_data_allTrades_button {color: #ddeffb; } 

  • Чтение каталога в сценарии оболочки
  • Одна командная строка оболочки, которая находит всех студентов в LEC05 и печатает свое имя в отсортированном порядке
  • Как я могу перечислять скрытые каталоги, затем каталоги, затем скрытые файлы и, наконец, файлы с ls?
  • линии с уникальной контрольной суммой
  • Должен ли я использовать трубопровод или перенаправление для ввода в «сортировку»,
  • Сортировка IP-адреса в соответствии со вторым полем в файле
  • Как сортировать по двум полям чисел
  • Как подключить сортировку к gawk?
  • 2 Solutions collect form web for “Сортировка файлов css по свойству цвета”

    Возможно, возможно, что вы пишете shell-скрипт следующим образом:

     column -s "#" -o "#" -t css.txt | sort -r -k2 

    Сначала будет коллизироваться ваш вывод и отсортировать строки во втором столбце.

    Возможно, недостатком является то, что он слегка модифицирует ваш код (но не так) и определенно нуждается в шестнадцатеричной форме цветов. С обозначением типа «цвет: синий» это не сработает.

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

     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/^[^;]*;//' 
    Linux и Unix - лучшая ОС в мире.