Добавьте в свой / etc / profile:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Войдите и выйдите из системы, чтобы это вступило в силу.
Преимущество этой формы в том, что вам не нужно обновлять ее каждый раз при обновлении Java.
Одно решение со скриптом 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
в противном случае.
Вы можете сделать следующее, используяawk
:
awk '$1 ~ /[0-9]\.[0-9]+/{ip=$1; val=0; next } /^[0-9]+$/{port=$1; if(!(val++)); print ip":"port}' infile
awk '/\./{ip = $0; next}; {print ip":"$0}'
должно быть достаточно на этом входе.
Обратите внимание, что nmap
имеет параметры для вывода в форматах, подходящих для программной обработки, таких как xml
.
Я сделал следующим способом
sed -n '/^[0-9]\{3\}\./,+1p' filename| sed "N;s/\n/:/g"
выход
192.168.1.221:80
192.168.1.223:25