LINUX.ORG.RU

Проверьте пожалуйста регулярное выражение которое я написал


0

0

Проверьте пожалуйста регулярное выражение которое я написал

Необходимо проверить что в строке задан путь
Напримет /etc/mydir/mysubdir

Я написал регулярное выражение :

/[^{алфавит символов которые не могут быть в имени директории}]*

ИТАК ВОПРОСЫ???
1)Правильно ли я написал?
2){алфавит....} - что это за символы(перечислите)???
3)Можно ли иначе???
4)КАК ИСПОЛЬЗОВАТЬ ЭТО РЕГ.ВЫР-ИЕ НАПРИМЕР В grep
anonymous

> 1)Правильно ли я написал?

В общем, да.

> 2){алфавит....} - что это за символы(перечислите)???

'\0'. И всё. Это для Linux. Для Windows есть куча всяких недопустимых символов, только я их уже не помню :) В MSDN есть, по-моему.

> 3)Можно ли иначе???

Чего? Проверить на допустимость пути? Можно. Без всяких регекспов просто проверь, есть ли в строке недопустимые символы.

> 4)КАК ИСПОЛЬЗОВАТЬ ЭТО РЕГ.ВЫР-ИЕ НАПРИМЕР В grep

НАПРИМЕР ПЕРЕДАТЬ В ПАРАМЕТРЕ КОМАНДНОЙ СТРОКИ.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

Но у меня не работает например следующее
(я немного поменял РВ)
q=/usr/local/bi+n
echo "$q" | grep '/[a-z]*'
Всё равно выводит /usr/local/bi+n
Хотя + не принадлежит a-z

anonymous
()
Ответ на: комментарий от anonymous

Зато '/[a-z]*' (что эквивалентно простому '/') легко находится в '/usr/local/bi+n'.

anonymous
()
Ответ на: комментарий от anonymous

ТУТ ищутся записи/строки, где присутствует, хотя бы, один фрагмент, удовлетворяющий условиям шаблона.

Строки без таких фрагментов выводиться не будут.

Ты же хоте, наверное это:

echo /usr/bin/proga | cut -d"/" -f 1,2,3,4
/usr/bin/proga

echo /usr/bin/proga | cut -d"/" -f 2
usr

nekrasov@NeksysL:~$ echo /usr/bin/proga | cut -d"/" -f 3
bin

nekrasov@NeksysL:~$ echo /usr/bin/proga | cut -d"/" -f 4
proga

P.S. Тут первое поле пустое: xxx/xxx/xxx/xxx

anonymous
()
Ответ на: комментарий от anonymous

Опс... :-)

Ладно, так вот, есть ещё команда/программа namei:

$ namei /bin/bash
f: /bin/bash
 d /
 d bin
 - bash

$ namei /bin/test
f: /bin/test
 d /
 d bin
 ? test - No such file or directory (2)

$ namei /usr/local/bin/test/proga
f: /usr/local/bin/test/proga
 d /
 d usr
 d local
 d bin
 ? test - No such file or directory (2)

$ namei /test/proga
f: /test/proga
 d /
 ? test - No such file or directory (2)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.