grep 및 cut을 사용하여 다음과 같이 nmap 스캔 결과의 IP 및 포트를 반환했습니다.
192.168.1.221
80
443
192.168.1.223
25
원하는 출력:
192.168.1.221:80
192.168.1.221:443
192.168.1.223:25
답변1
awk '/\./{ip = $0; next}; {print ip":"$0}'
이 입력이면 충분합니다.
nmap
프로그래밍 방식 처리에 적합한 형식으로 출력하도록 선택할 수 있습니다 xml
.
답변2
다음 명령을 사용하여 다음 작업을 수행할 수 있습니다 awk
.
awk '$1 ~ /[0-9]\.[0-9]+/{ip=$1; val=0; next } /^[0-9]+$/{port=$1; if(!(val++)); print ip":"port}' infile
답변3
Bash 스크립트를 사용하는 솔루션:
for i in $(<input); do [ ${#i} -le 3 ] && printf '%s:%s\n' $ip $i || ip=$i; done
입력 문자열 길이가 3자보다 길면 IP 주소를 변수에 저장하고, ip:port
그렇지 않으면 인쇄합니다. input
입력 파일로 바꾸십시오 . (포트 번호가 3자를 초과하는 경우 더 큰 값을 선택하여 일치시킬 수 있습니다)
또 다른:
while read i; do [ ${i/.} != $i ] && ip=$i || printf "%s:%s\n" $ip $i; done <input
IP 주소 ip
에 점이 포함되어 있으면 변수에 할당되고 ip:port
그렇지 않으면 인쇄됩니다.
답변4
나는 다음 방법으로 그것을했다
sed -n '/^[0-9]\{3\}\./,+1p' filename| sed "N;s/\n/:/g"
산출
192.168.1.221:80
192.168.1.223:25