motif imprimé uniquement


0

J'essaie d'obtenir des versions pour des services dans un fichier gnmap. Une ligne typique ressemble à:

Host: 192.x.x.x ()    Ports: 21/open/tcp//ftp//HP JetDirect ftpd/, 23/open/tcp//telnet//HP JetDirect printer telnetd (No password)/, 80/open/tcp//http//HP-ChaiSOE 1.0 (HP LaserJet http config)/, 443/open/tcp//ssl|http//HP-ChaiSOE 1.0 (HP LaserJet http config)/, 515/open/tcp//printer///, 631/open/tcp//http//HP-ChaiSOE 1.0 (HP LaserJet http config)/, 7627/open/tcp//http//HP-ChaiSOE 1.0 (HP LaserJet http config)/, 9100/open/tcp/////, 14000/open/tcp//tcpwrapped///    Seq Index: 25   IP ID Seq: Incremental

Je dois faire correspondre des ports "ouverts" spécifiques et n'imprimer que l'expression correspondante. J'ai essayé:

cat file | sed -n "/ 80\/open\/tcp\/\*\/\*\/\*\/\*\//p"

J'ai besoin que le résultat soit:

80/open/tcp//http//HP-ChaiSOE 1.0 (HP LaserJet http config)/

Réponses:


2

Vous pouvez faire la même chose en utilisant grep avec l'option -o (--only-matching):

cat teste | grep -o "80\/open\/tcp\/[^,]*"

0

Voici un moyen,

sed est |. *, 80 \ ([^,] * \). * | 80 \ 1 | ' 

et, pour éviter la correspondance, dites ' 8080' ici,

sed | s *. *, 80 \ / \ ([^,] * \). * | 80 / \ 1 | ' 

Mais, je pense, il existe une meilleure forme de sortie de NMAP qui vous facilitera la vie.
Et, vous trouverez des moyens plus exacts pour cette sortie grepable dans la documentation nmap.


En fait, un fichier gnmap est le fichier grepable. Grep saisit toute la ligne. Je n'ai besoin que de la sortie que j'ai énumérée ci-dessus. Malheureusement, la commande que vous avez listée n'entraîne pas l'impression du résultat recherché.
blanker
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.