LINUX.ORG.RU
решено ФорумAdmin

Как вставить текст в нужный столбец в файле?

 , , ,


0

1

Добрый день!
Стоит задача написать скрипт, который бы пропинговал все сети и вывел для каждого доступного хоста какие порты у него открыты, записав все это в файл. Но не могу нагуглить как мне в скрипте указать в какой столбец ему нужно вставить текст.
Файл будет с таблицей:

+++ Hosts +++   22      23      25      53      80      443     1521
192.168.11.2    yes     no      no      no      yes     no      no
192.168.15.44   yes     no      no      yes     no      no      no
192.168.21.14   no      no      yes     yes     no      no      no
Для разделения между столбцами используется табуляция, иных портов как кроме приведенных в примере у меня не будет. Логика скрипта такая: если пинги на хост 192.168.11.2 имеются, он начинает смотреть какие порты у него открыты и далее уже должен в нужный столбец вписать yes или no. Скрипт почти готов, вот только этот момент у меня не решен, я не знаю как можно заставить awk или sed вписывать yes/no в нужные столбцы. Помогите пожалуйста.


Последовательный paste на каждый порт.
Скрипт такой:
Если есть пинг:
Записать ip в ip.list
Просканить порт # $port, записать yes/no в port_$port.list
paste ip.list port_*.list > body.list
cat header body.list > my_cool_file.list

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 2)
Ответ на: комментарий от crutch_master

Спасибо, а я тут мучался игрался с sed и awk))

amkgi
() автор топика

На заметку: если хостов много, то один вызов nmap отработает быстрее, чем куча последовательных вызовов nc и подробных инструментов.

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

Спасибо, делаю как раз nc'ом и уже долго скрипт выполняется, попробую nmap'ом.

amkgi
() автор топика
Ответ на: комментарий от legolegs

+ за nmap, хост может не пинговаться но это не значит что у него не открыты порты.

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