[SOLVED] Сортировка USE'ов в строке (сортировка слов в строке)

Собственно, после долгого пользования gentoo, в make.conf и portage.use накопилось довольно много USE флагов, расположенных в произвольном порядке. Хочется как-нибудь их отсортировать в строке, чтобы было удобней проверять наличие нужного флага.

Т.е. например строки до сортировки

user@host ~ % cat /etc/make.conf |grep USE
USE="mmx sse sse2 3dnow dbus hal 3dnowext X alsa opengl vim-syntax jpeg png zsh-completion ldap png -arts"

после сортировки:

user@host ~ % cat /etc/make.conf |grep USE
USE="3dnow 3dnowext alsa dbus hal jpeg ldap mmx opengl png png sse sse2 vim-syntax X zsh-completion -arts"

Как видите, сортировка например, выявила лишний флаг "png", т.е. это потенциально полезная штука, да и просто упорядоченные USE красиво выглядят

Так вот, как пользователи Gentoo решают эту проблему? Желательно, с помощью стандартных утилит, созданных специально для этой цели.

PS: emerge например, сам каким-то образом сортирует USE'ы

есть софтина ufed. это

есть софтина ufed. это редактор use-флагов с ncurses-интерфейсом. после сохранения изменений сама сортирует флаги в make.conf

мой make.conf выглядит так:

 These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
CFLAGS="-O2 -march=athlon-xp -msse3 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j5"
#FEATURES="distcc"
USE="3dnow 3dnowext 7zip X acpi alsa bluetooth cdr cleartype dbus dri dvd dvdr
     embedded encode exiff glibc-omitfp hal insecure-drivers jpeg jpeg2k kde
     laptop lm_sensors mmx mmxext mng mp3 multiprocess mysql nls ogg opengl
     oscar pdf png qt3support qt4 quicktime rar samba sensord smp sql sse sse2
     sse3 ssl svg symlink threads unicode userlocales virtualbox vorbis wav
     webkit wicd wifi wma wmp xcomposite xorg -3dfx -external-fuse -gnome -gtk
     -ipv6 -kerberos"
LINGUAS="ru"
INPUT_DEVICES="evdev synaptics"
VIDEO_CARDS="vesa fglrx"
ACCEPT_KEYWORDS="~x86"
GENTOO_MIRRORS="ftp://ftp.chg.ru/pub/Linux/distributions/gentoo/"
GENTOO_MIRRORS="ftp://mirror.yandex.ru/gentoo-distfiles"
GENTOO_MIRRORS="ftp://ftp.corbina.net/pub/Linux/gentoo"
FETCHCOMMAND="/usr/bin/getdelta.sh \${URI}"
PORTDIR_OVERLAY="/usr/local/portage"
PORTAGE_NICENESS="15"

Спасибо! Интересная штука, но

Спасибо!
Интересная штука, но не совсем то, что требовалось

.

NETZMB написал(а):
Как видите, сортировка например, выявила лишний флаг "png", т.е. это потенциально полезная штука, да и просто упорядоченные USE красиво выглядят

Сортировка по алфавиту --- не единственный (и не бесспорно лучший) способ упорядочивания USE-флагов.

По теме вопроса могу порекомендовать изучить руководство по gawk (GNU awk).

:wq
--
Live free or die

Цитата: Сортировка по

Цитата:
Сортировка по алфавиту --- не единственный (и не бесспорно лучший) способ упорядочивания USE-флагов.

Не обязательно именно по алфавиту. Хотелось-бы сортировать USE'ы так, как это делают команды семейства portage.

Цитата:
По теме вопроса могу порекомендовать изучить руководство по gawk (GNU awk).

Ну, awk я иногда пользуюсь, но это не совсем то, что хотелось-бы использовать для этой задачи. Наверняка функция сортировки юсов есть в библиотеке, которой пользуется portage. Так вот, мне интересно, есть ли некая команда-wrapper, которая даёт ей пользоваться из командной строки с возможностью конвейера. Чтобы её из vim запустить как фильтр, например.

emerge сортирует очень просто

emerge сортирует очень просто - все что с "-" в конце, остальное - по аски. Это можно сделать и скриптом, думаю специальных утилит нету.

Спасибо. Значит как-нибудь

Спасибо.

Значит как-нибудь напишу собственный скрипт. В принципе, задача довольно проста.

Если выйдет нечто красивое и читабельное, выложу сюда.

Всем спасибо за внимание, проблема в принципе, решена.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".