Shell脚本问题详解
来源:互联网 发布:steam淘宝充值卡便宜 编辑:程序博客网 时间:2024/05/23 12:39
例1:找出当前系统中端口大于1024的程序!
使用netstat -tuln查询出的结果如下,需要输出红色字体的行:
[root@localhost ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:49506 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:88 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 :::111 :::* LISTEN
tcp 0 0 :::49331 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 ::1:631 :::* LISTEN
udp 0 0 0.0.0.0:37727 0.0.0.0:*
udp 0 0 0.0.0.0:751 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 0.0.0.0:631 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 127.0.0.1:852 0.0.0.0:*
udp 0 0 :::33901 :::*
udp 0 0 :::751 :::*
udp 0 0 :::111 :::*
【解法1】
awk '{match($0,/.*:([0-9]+)/,a)}a[1]>1024{print a[1]}' 1.txt
使用match来匹配内容,$0表示1.txt的内容。
/.*:([0-9]+)/为正则表达式,匹配需要的内容。匹配规则为:前面为任意多个字符+冒号+数字+任意多个字符。并把匹配到的内容自动赋值到数组a中,a的 下标 从1开始。如果a[1]的值大于1024,那么打印a[1]的值。
【解法2】
netstat -tuln|awk -F: '+$2>1024'
说明:
【解法3】
netstat -tuln|awk '+gensub(".*:","",1,$4)>1024'
说明:gensub的语法为gensub("匹配到的字符串",'替换后的字符串',起始的位置),gensub(".*:","",1,$4)就是将.*匹配到的内容替换成空,然后显示第4列大于 1024的数据。
【解法4】
ss -tu sport ge :1024
说明:ss命令的用法,-tu表示tcp和udp协议.
- Shell脚本问题详解
- Shell脚本编程详解
- Shell脚本编程详解
- Shell脚本编程详解
- shell脚本详解
- Shell脚本编程详解
- shell脚本格式问题
- shell脚本编码问题
- shell 脚本随机数问题
- shell脚本编码问题
- shell脚本问题&技巧
- shell脚本dos问题
- shell脚本杂七杂八问题
- 【Shell】脚本日期问题
- Linux shell脚本详解 --z
- Shell 脚本调试技巧详解
- Shell 脚本调试技巧详解
- Shell脚本之awk详解
- USACO 3.1 Agri-Net 最短网络 (最小生成树)(普里姆算法)
- USACO 3.1 Agri-Net 最短网络 (最小生成树)
- L0,L1,L2
- Java线程(十一):Fork/Join-Java并行计算框架
- 多态(二)--例子
- Shell脚本问题详解
- poj 3264 Balanced Lineup(线段树)
- wget 命令用法详解
- 复杂链表的复制
- C++—— cin输入流详解
- [BZOJ4455][Zjoi2016]小星星(容斥原理+树形dp)
- ccccleve_1总结 注意理解题意
- Javaweb分页技术实现
- LeetCode