zl程序教程

您现在的位置是:首页 >  系统

当前栏目

linux awk列数据处理工具使用示例

Linux工具 示例 数据处理 awk 使用
2023-09-14 09:01:53 时间

查看pid

$ ps aux | awk '{print $2}' | more

在这里插入图片描述

$1表示第一列
$0表示所有列
$11表示第十一列

查看/etc/passwd第7列

#第一种写法
$ awk -F: '{print $7}' /etc/passwd | more
/bin/bash
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/bin/sync
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
......
#第二种写法
$ awk 'BEGIN {FS=":"} {print $7}' /etc/passwd
/bin/bash
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/bin/sync
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
......

在这里插入图片描述
在这里插入图片描述

-F: 表示以:作为分隔符

判断表达式

$ cat product.txt 
productA 30
productB 50
productC 70
#第一种写法
$ awk '$2>50 {print $0} $2<=50 {printf("%s\t%s\n",$0,"要补货")}' product.txt 
productA 30	要补货
productB 50	要补货
productC 70
#第二种写法
$ awk '$2>50 {print $0} $2<=50 {print $0 "要补货"}' product.txt 
productA 30要补货
productB 50要补货
productC 70

在这里插入图片描述

计算空格的数量

$ cat spaces.txt 
iiiiiiiiiiiiiiiiii

llllllllllllllllll
,,,,,,,,,,,,,,,,,,

dddddddddddddddddd



rrrrrrrrrrrrrrrrrr
iiiiiiiiiiiiiiiiii

llllllllllllllllll
,,,,,,,,,,,,,,,,,,

dddddddddddddddddd
$ awk '/^ *$/{counter=counter+1} END {print counter}' spaces.txt 
7

在这里插入图片描述

/^ *$/表示以空格开始,也以空格结尾,即空行

统计某一范围内的pid

$ ps aux | awk '$2>6000 && $2<=6999 {counter=counter+1} END {print counter}'
24

在这里插入图片描述