LINUX.ORG.RU

bash скрипт


0

0

Делают так:
nmap -p21 -oG - -iL ./iplist.dat | grep open
и получаю вывод:
Host: 192.168.1.4 () Ports: 21/open/tcp//ftp///
Host: 192.168.1.5 () Ports: 21/open/tcp//ftp///
Host: 192.168.1.23 () Ports: 21/open/tcp//ftp///
Host: 192.168.1.28 () Ports: 21/open/tcp//ftp///
Host: 192.168.1.18 () Ports: 21/open/tcp//ftp///
Такой вывод мне подходит, в плане форматирования.

Запихиваю все это в цикл для дальнейшей обработки:
for i in $(nmap -p21 -P0 --host_timeout 300 -oG - -iL ./iplist.dat | grep open);
do
echo $i;
done

но при его выполнении получаю следующиее:
Host:
192.168.1.4
()
Ports:
21/open/tcp//ftp///
Host:
192.168.1.5
()
Ports:
21/open/tcp//ftp///
Host:
192.168.1.23
()
Ports:
21/open/tcp//ftp///
Host:
192.168.1.28
()
Ports:
21/open/tcp//ftp///
Host:
192.168.1.18
()
Ports:
21/open/tcp//ftp///

Что не приемлимо для дальнейшего парсинга.
Что я делаю не так? Как получить правильное форматирование?

anonymous

Re: bash скрипт

IFS=$'\n' Гденибудь в начале скрипта попробуйте добавить.

SatanClaus ★★★ ()
Ответ на: Re: bash скрипт от SatanClaus

Re: bash скрипт

Благодарю, работает.

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