Как получить числа при помощи регулярного выражения, но только продержаться то

Ныне несуществующая организация Resara создала Сервер Resara. Сервером Resara является функциональная Реализация Active Directory с помощью Samba4. Полный пакет находится в Ubuntu 12.04 (Точный Ящер), репозитории под пакетом называют rds.

Простое apt-get install rds должен разрешить все зависимости и дать Вам рабочий Контроллер домена, к которому можно присоединиться к компьютерам на базе Windows, компьютерам OSX и выполнить, любой LDAP/AD основывал аутентификацию.

Групповая политика возможна и управляется через инструменты Windows RSAT.

Сервером можно управлять от rdsconsole приложение.

1
24.01.2014, 07:22
3 ответа
file="00 foo 99.jpg"
expr "x$file" : '.*[^0-9]\([0-9]\{1,\}\)'

Не использовать echo для произвольных данных Вы не можете использовать sed как sed работы над строками и именами файлов могут быть сделаны из нескольких строк.

match не стандартный оператор expr, : стандартный эквивалент, таким образом, Вы могли бы также использовать его вместо этого для предотвращения проблем мобильности.

Добавление префикса $file с x удостоверяется $file не взят в качестве expr оператор. (и в этом случае помогает в случаях, где числам не предшествуют нечисла).

Обратите внимание, что вышеупомянутое имеет нежелательный побочный эффект, что оно возвращает ненулевой статус выхода, если возвращенное число 0 (или 00, 000...).

\+ не стандартный основной regexp оператор. \{1,\} стандартный эквивалент (хотя Вы могли также записать это [0-9][0-9]*).

Вы не должны использовать expr здесь, Вы могли также использовать оболочку (любая оболочка POSIX) расширение параметра:

file="00 foo 99.jpg"
number=x${file}x
number=${number%[!0-9]*}
number=${number##*[!0-9]}
1
27.01.2020, 23:28

Используя расширенный regex синтаксис sed GNU (BSD seds имеют -E вместо -r):

$ echo  "00 foo 99.jpg" | sed -r  's/(^|.*[^0-9])([0-9]+)[^0-9]*$/\2/' 
99

Использование GNU expr match вместо sed:

$ expr match "$(echo "01 foo 89.jpg" | rev)" '[^0-9]*\([0-9]\+\)' | rev
89
1
27.01.2020, 23:28

С GNU grep:

$ echo "00 foo 99.jpg" | grep -o '[[:digit:]]\+' | tail -n1
99
1
27.01.2020, 23:28

Теги

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