The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"grep -e описание пробела или табуляции в регулярном выражении"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от tkpiuk (ok) on 14-Апр-11, 07:39 
Добрый день коллеги.

Убил вчера вечер на написание довольно таки простецкого регулярного выражения... но вот не задача...

есть вывод


$> smbclient -W dom -L box --user="byaka" 2> /dev/null|grep -e '[a-z]\{1\}\$'
        CD$             Disk      
        HR$             Disk      
        C$              Disk      Default share
        Scan$           Disk      
        I$              Disk      Default share
        1C$             Disk      
        IPC$            IPC       Remote IPC
        ADMIN$          Disk      Remote Admin
        D$              Disk      Default share
        E$              Disk      Default share

трыбуется получить только имена дисков тобишь
        C$              Disk      Default share
        I$              Disk      Default share
        D$              Disk      Default share
        E$              Disk      Default share
, для этого нужно или описать пробел или скарее всего табуляция в этом выводе или описать 1 буквенный символ от A до Z перед долларом. проблеммы в том что ни то ни то не работает (\s+ \t+)

читал http://www.robelle.com/smugbook/regexpr.html, нифига не помогает.

где я обламываюсь ?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от phpcoder email(ok) on 14-Апр-11, 08:00 
Во-первых, [a-z] соответствует буквам в нижнем регистре, а у вас они в верхнем.
Во-вторых, для описания пробельных символов можно использовать [[:space:]].

Попробуйте grep -e '[[:space:]][A-Z]\$'

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от tkpiuk (ok) on 14-Апр-11, 08:18 
> Во-первых, [a-z] соответствует буквам в нижнем регистре, а у вас они в
> верхнем.
> Во-вторых, для описания пробельных символов можно использовать [[:space:]].
> Попробуйте grep -e '[[:space:]][A-Z]\$'

оно! На самом деле пробовал [:space:], однако нужно было в двойных квадратных скобках его вписать =)

Спасибо =)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от Аноним (??) on 14-Апр-11, 11:45 
А можно было просто матчить пробел с табом в [  ]. Чтобы ввести таб - Ctrl+V, Tab.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от phpcoder email(ok) on 14-Апр-11, 11:46 
> А можно было просто матчить пробел с табом в [  ].

Можно.

> Чтобы ввести таб - Ctrl+V, Tab.

Мне кажется, проще было бы -- [ \t]

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от meantraitor on 14-Апр-11, 14:20 
1. awk '/Default share/'    ;-)
2. awk '$1 ~ /^[A-Z]\$/'
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от tkpiuk (ok) on 15-Апр-11, 11:49 
> 1. awk '/Default share/'    ;-)
> 2. awk '$1 ~ /^[A-Z]\$/'

на русских форточках сие "Ресурс по умолчанию"или хз как там, поэтому 1. не проканает
по 2. не с буквы начинается строка =) вывод smbclient отформатирован


upd
         Sharename       Type      Comment
        ---------       ----      -------
        HP1280          Printer   HP1280
        IPC$            IPC       Удаленный IPC
        D$              Disk      Стандартный общий ресурс
        print$          Disk      Драйверы принтеров
        upload          Disk      
        E               Disk      
        ADMIN$          Disk      Удаленный Admin
        C$              Disk      Стандартный общий ресурс

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

6. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от pavlinux (ok) on 15-Апр-11, 04:24 
> трыбуется получить только имена дисков тобишь

man smbclient


-g|--grepable
    This parameter provides combined with -L easy parseable output that allows
    processing with utilities such as grep and cut.

# smbclient -g -W dom -L box --user="byaka" 2>&1 | grep Disk

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от tkpiuk (ok) on 15-Апр-11, 11:52 
>> трыбуется получить только имена дисков тобишь
> man smbclient
>
 
> -g|--grepable
>     This parameter provides combined with -L easy parseable
> output that allows
>     processing with utilities such as grep and cut.
>

> # smbclient -g -W dom -L box --user="byaka" 2>&1 | grep Disk

Благодарю!, идеальный вариант.

p.s.
честно, читал, пропустил =)

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от tkpiuk (ok) on 15-Апр-11, 12:00 
>> трыбуется получить только имена дисков тобишь
> man smbclient
>
 
> -g|--grepable
>     This parameter provides combined with -L easy parseable
> output that allows
>     processing with utilities such as grep and cut.
>

> # smbclient -g -W dom -L box --user="byaka" 2>&1 | grep Disk

тогда уж
smbclient -g -W dom -L box --user="byaka" 2>&1 | awk -F '|' '{print $2}'| egrep -i '^[a-z]{1}(\$|$)'

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "grep -e описание пробела или табуляции в регулярном выражении"  +/
Сообщение от pavlinux (ok) on 15-Апр-11, 13:29 
>[оверквотинг удален]
>>
 
>> -g|--grepable
>>     This parameter provides combined with -L easy parseable
>> output that allows
>>     processing with utilities such as grep and cut.
>>

>> # smbclient -g -W dom -L box --user="byaka" 2>&1 | grep Disk
> тогда уж
> smbclient -g -W dom -L box --user="byaka" 2>&1 | awk -F '|'
> '{print $2}'| egrep -i '^[a-z]{1}(\$|$)'

После 2>&1 |  каждый извращается как нужно :)

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру