netstat 的原始结果如下:
[root@Test tmp]# netstat -tunp| grep 'ESTABLISHED'
tcp 0 0 10.251.101.163:6379 10.251.101.163:51602 ESTABLISHED 2115/redis-server 1
tcp 0 0 127.0.0.1:58657 127.0.0.1:3306 ESTABLISHED 13354/rpc_time_serv
tcp 0 0 10.251.101.163:52409 10.251.101.163:6379 ESTABLISHED 611/./SendMsgServer
tcp 0 0 127.0.0.1:54957 127.0.0.1:12000 ESTABLISHED 19186/php-fpm
tcp 0 0 10.251.101.163:6379 10.251.101.163:49821 ESTABLISHED 2115/redis-server 1
tcp 0 0 127.0.0.1:12000 127.0.0.1:45060 ESTABLISHED 1810/memcached
我想用awk处理输出结果为:
10.251.101.163:6379 ESTABLISHED 2115/redis-server 1
127.0.0.1:58657 ESTABLISHED 13354/rpc_time_serv
10.251.101.163:52409 ESTABLISHED 611/./SendMsgServer
127.0.0.1:54957 ESTABLISHED 19186/php-fpm
10.251.101.163:6379 ESTABLISHED 2115/redis-server 1
127.0.0.1:12000 ESTABLISHED 1810/memcached
以空格符为分隔符,因为每一行的字段数(列数)不一致,'ESTABLISHED'之后需要打印的字段数就不一样了。请问应该如何实现呢?
另外如果用固定字符位数的方式来输出应该是可以简单达到效果,但是为了泛用,不想以这种方式处理。
目前的想法是,获取'ESTABLISHED'所在的字段数,然后把该字段之后的字段打印,但是对awk不是很熟悉,不知道代码具体怎么写。
望高人指点...