How set filter netstat -an | grep -P '\:'38''

Hi,

I can write sh script for Linux platform
I run:

netstat -an | grep -P '\:'38''| grep ESTABLISHED

but result:

[root@om910 install]# netstat -an | grep -P '\:'38''| grep ESTABLISHED
tcp        0      0 172.16.1.107:383            172.16.1.81:49981           ESTABLISHED
tcp        0      0 127.0.0.1:18170             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:10555             ESTABLISHED
tcp        0      0 127.0.0.1:10555             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:10329             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:10329             ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:47234             ESTABLISHED

It is not good, because i need to receive only 38 number. How provide it? Thanks

Might this help

$ netstat -an | grep ":38$" | grep ESTABLISHED

hm...
but port 383 dosn't displayed

[root@om910 ~]# netstat -an | grep ":383$" | grep ESTABLISHED
[root@om910 ~]#
 
$ nawk ' $4~/:38$/ || $5~/:38$/ {print $0}' test
tcp        0      0 127.0.0.1:10329             127.0.0.1:38               ESTABLISHED
tcp        0      0 127.0.0.1:38               127.0.0.1:47234             ESTABLISHED
tcp        0      0 127.0.0.1:38               127.0.0.1:47234             ESTABLISHED
 
$ cat test
tcp        0      0 172.16.1.107:383            172.16.1.81:49981           ESTABLISHED
tcp        0      0 127.0.0.1:18170             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:10555             ESTABLISHED
tcp        0      0 127.0.0.1:10555             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:10329             127.0.0.1:38               ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:10329             ESTABLISHED
tcp        0      0 127.0.0.1:38               127.0.0.1:47234             ESTABLISHED
tcp        0      0 127.0.0.1:38               127.0.0.1:47234             ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:47234             ESTABLISHED
 

so, in your case, you need the below command

 
netstat -an | nawk ' $4~/:38$/ || $5~/:38$/ {print $0}'

Ok, but I don't have nawk, I run awk and follow:

[root@om910 ~]# netstat -an | awk ' $4~/:383$/ || $5~/:383$/ {print $0}'
tcp        0      0 0.0.0.0:383                 0.0.0.0:*                   LISTEN
tcp        0      0 172.16.1.107:383            172.16.1.81:49981           ESTABLISHED
tcp        0      0 127.0.0.1:18170             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:10555             ESTABLISHED
tcp        0      0 127.0.0.1:10555             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:10329             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:10329             ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:47234             ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:47236             ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:59280             ESTABLISHED
tcp        0      0 127.0.0.1:59290             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:59292             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:59280             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:59290             ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:59292             ESTABLISHED
tcp        0      0 172.16.1.107:55956          172.16.1.81:383             ESTABLISHED
tcp        0      0 172.16.1.107:55904          172.16.1.81:383             ESTABLISHED
tcp        0      0 127.0.0.1:47236             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:47234             127.0.0.1:383               ESTABLISHED
tcp        0      0 127.0.0.1:383               127.0.0.1:18170             ESTABLISHED
tcp        0      0 172.16.1.107:383            172.16.1.80:2106            ESTABLISHED
tcp        0      0 172.16.1.107:31380          172.16.1.80:383             ESTABLISHED
tcp        0      0 172.16.1.107:51517          172.16.1.80:383             ESTABLISHED
tcp        0      0 172.16.1.107:51523          172.16.1.80:383             ESTABLISHED
tcp        0      0 172.16.1.107:56111          172.16.1.80:383             ESTABLISHED

Is this expected result ?

or you want only the ESTABLISHED ?

netstat -an | awk ' $4~/:383$/ || $5~/:383$/ {if($NF~/ESTABLISHED/)print $0}'

Yes,
Can I provide expected result command grep or only awk?

Thank you!
Have a nice day!

???????

netstat -an | grep -w ":383" | grep ESTABLISHED

PS : Code not tested, not in my lab!

--ahamed