实用命令之awk

awk是一个文本分析工具, 一般用于对数据分析并生成报告, 非常直观明了, 这里通过简单的例子介绍一下

1. 只查看文件的属性
# 一般情况下我们使用
ls -al

# 如果只想看属性和文件名
ls -al | awk '{print $1 "\t" $9}'
实用命令之awk_第1张图片

其中 $1代表第一列, $9代表第九列. "\t"代表以tab键分割两列

2. 指定分隔符查看用户目录
# 如果查看当前用户情况, 但它们以 : 分割
cat /etc/passwd

# 如果只显示用户名和用户目录
cat /etc/passwd | awk -F : '{print $1 "\t" $6}'
实用命令之awk_第2张图片

注意 -F 参数, 是指定分割符

3. 搜索包含关键字所在的行
# 查找apache用户所在的行
cat /etc/passwd | awk '/apache/'

# 另一种写法
awk '/apache/' /etc/passwd

其中 /apache/ 中的/一定要有, 同时也支持正则表达式

4. 综合使用
# 查看连接当前443端口的tcp协议IP地址
netstat -nat | grep 443 | awk '{print $5}' | awk -F: '{print $1}'

其中第一个awk是取第五列, 为ip+端口号, 第二个awk是将第五列拆开, 取第一列即ip地址

另外, awk的用法远不止这些, 包括sprintf和内置许多方法, 语法基本和C语言一样, 这里暂不介绍

你可能感兴趣的:(实用命令之awk)