IP-адреса grep и номер порта в одну строку

Добавьте в свой / etc / profile:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

Войдите и выйдите из системы, чтобы это вступило в силу.

Преимущество этой формы в том, что вам не нужно обновлять ее каждый раз при обновлении Java.

0
05.03.2019, 14:02
4 ответа

Одно решение со скриптом bash:

for i in $(<input); do [ ${#i} -le 3 ] && printf '%s:%s\n' $ip $i || ip=$i; done

Это сохраняет IP-адрес в переменной, если длина входной строки превышает 3 символа, и печатает ip:portв противном случае. Замените inputвашим входным файлом. (Вы можете выбрать большее значение, если номера ваших портов содержат более 3 символов)

Еще один:

while read i; do [ ${i/.} != $i ] && ip=$i || printf "%s:%s\n" $ip $i; done <input

Это присваивает IP-адрес переменной ip, если она содержит точку, и печатает ip:portв противном случае.

0
28.01.2020, 02:30

Вы можете сделать следующее, используяawk:

awk '$1 ~ /[0-9]\.[0-9]+/{ip=$1; val=0; next } /^[0-9]+$/{port=$1; if(!(val++)); print ip":"port}' infile
0
28.01.2020, 02:30
awk '/\./{ip = $0; next}; {print ip":"$0}'

должно быть достаточно на этом входе.

Обратите внимание, что nmapимеет параметры для вывода в форматах, подходящих для программной обработки, таких как xml.

2
28.01.2020, 02:30

Я сделал следующим способом

sed -n '/^[0-9]\{3\}\./,+1p' filename| sed "N;s/\n/:/g"

выход

192.168.1.221:80
192.168.1.223:25
0
28.01.2020, 02:30

Теги

Похожие вопросы