Сканирование шар

Покритикуйте и подскажите, пожалуйста:

#!/bin/bash
wow=`nmap 172.16.0.0/24 -p 139 --open | grep "Interesting" | awk '{print $5}' | sed -e 's/)//' | sed -e 's/(//' | sed -e 's/://'`
for isp in $wow
do
lst=`smbclient -g -N -L \\\\$isp | grep Disk | awk -F\| '{print $2}'`;
for shre in $lst
do
echo "smb://$ip/$shre";
done
done

цель - получение списка всех шар в сети списком. Недостатки, от которых не могу избавиться:
1) Если шара с пробелами она разбивается :(
2) Сообщения не с stdout выводятся (которые с именем операционки и пр.)
как быть?

Ну.. пробелы удалось победить так:

smbclient -b -g -N -L $IP | grep Disk | sed s/Disk.*//g | cut -f2 | sed s/^/smb:\\\/\\\/$IP\\\// | sed s/'\ \+'$//g

+

в доменной сети, без прав доменадмина не прокатит.

there is only war...

olegon

olegon написал(а):
Покритикуйте и подскажите, пожалуйста:
2) Сообщения не с stdout выводятся (которые с именем операционки и пр.)
как быть?

grep -v попробуй

there is only war...

А при чем здесь grep -v? Это

А при чем здесь grep -v? Это инверсия выборки. А что 2>&1 не поможет? Или я неправильно понял и оно не в stderr идет?

Идет, скорее всего, в stderr,

Идет, скорее всего, в stderr, но куда перенаправление воткнуть?

Ну туда, от какой комманды

Ну туда, от какой комманды тебе нужен вывод. 2>&1 перенапрвляет вывод stderr в stdout.
Гугль.

+

Storm написал(а):
А при чем здесь grep -v? Это инверсия выборки. А что 2>&1 не поможет? Или я неправильно понял и оно не в stderr идет?

дык я знаю о чем пишу))
постстартера я понял так, что в выводе появляются еще другие ненужные сообщения, так почему бы не отгрепить c -v ?

there is only war...

это не сообщения stdout

grep-ом их не возьмёшь
можно убедиться в этом, перенаправив вывод в файл и не обнаружив их там - они останутся в консоли.

P.S. Соответственно, они не мешают

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

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