Dav*_*vid 3 linux grep sed awk text-processing
对于以下几行,我只需要过滤掉协议、端口和服务。
tcp 127.0.0.1:25 1147/master
tcp 0.0.0.0:443 1039/nginx:
tcp 127.0.0.1:8001 1218/python
tcp 0.0.0.0:10050 939/zabbix_agentd
tcp 127.0.0.1:6379 891/redis-server
tcp 0.0.0.0:80 1039/nginx:
tcp 0.0.0.0:22 889/sshd
tcp 127.0.0.1:5432 929/postmaster
udp 127.0.0.1:323 645/chronyd
Run Code Online (Sandbox Code Playgroud)
我需要这样:
tcp 25 master
tcp 443 nginx
tcp 8001 python
tcp 10050 zabbix_agentd
tcp 6379 redis-server
tcp 80 nginx
tcp 22 sshd
tcp 5432 postmaster
udp 323 chronyd
Run Code Online (Sandbox Code Playgroud)
小智 5
这看起来更直接,更容易记住。该-F
选项AWK允许您提供一个正则表达式类,包含你需要分割上的字符。
awk -F'[ :/]' '{print $1,$3,$5}' file
Run Code Online (Sandbox Code Playgroud)
史蒂夫(下面)提到了一种比我原先想到的更短的方法:
cat file | ...
将文件放在最后。