实用命令之awk
2017-05-25 本文已影响46人
殷临风
awk
是一个文本分析工具, 一般用于对数据分析并生成报告, 非常直观明了, 这里通过简单的例子介绍一下
1. 只查看文件的属性
# 一般情况下我们使用
ls -al
# 如果只想看属性和文件名
ls -al | awk '{print $1 "\t" $9}'
其中
$1
代表第一列,$9
代表第九列."\t"
代表以tab
键分割两列
2. 指定分隔符查看用户目录
# 如果查看当前用户情况, 但它们以 : 分割
cat /etc/passwd
# 如果只显示用户名和用户目录
cat /etc/passwd | awk -F : '{print $1 "\t" $6}'
注意
-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
语言一样, 这里暂不介绍