awk
数据处理命令
-F 定义列分隔符
awk '条件类型 1{动作 1} 条件类型2{动作 2} ...' filename
1.读入第一行,并将内容按分隔符(默认空格)分割,每个字段列可以使用$1,$2...访问。
整行使用$0
2. 依据 "条件类型" 的限制,判断是否需要迚行后面的 "动作";
3. 做完所有动作与条件判断;
4. 若还有后续的“行”数据,则重复上面 1~3 癿步骤,直到所有的数据都读完为止。
内部变量:
NF 每一行拥有的字段总数
NR 目前处理是第几行
FS 目前的分割字符,默认空格
FILENAME 文件名
BEGIN 读入之前执行
END 处理完所有读入数据后执行
> last -n5
appoper pts/18 25.0.170.121 Thu Nov 2 15:17 still logged in
appoper pts/26 25.0.170.121 Thu Nov 2 15:13 - 15:19 (00:05)
appoper pts/18 25.0.170.107 Thu Nov 2 15:11 - 15:16 (00:05)
appoper pts/26 25.0.170.106 Thu Nov 2 15:10 - 15:11 (00:01)
appoper pts/18 25.0.170.121 Thu Nov 2 15:05 - 15:10 (00:05)
> last -n5|awk '{print $1"@"$3}'
appoper@25.0.170.121
appoper@25.0.170.121
appoper@25.0.170.107
appoper@25.0.170.106
appoper@25.0.170.121
以“:”分割,输出uid小于10的用户名
> cat /etc/passwd |awk '{FS = ":"} $3 <10 {print $1}'
root:x:0:0:root:/root:/bin/bash #第一行未被分割,下面使用BEGIN处理
bin
daemon
adm
lp
sync
shutdown
....
用BEGIN关键字,先执行BEGIN语句,后读取内容处理
> cat /etc/passwd |awk 'BEGIN{FS = ":"} $3 <10 {print $3 "\t" $1}'
0 root
1 bin
2 daemon
3 adm
4 lp
5 sync
6 shutdown
.....
新建文本awk.txt内容:
a 10 20
b 23 34
c 12 13
统计第二列的和,END处理完所有读取行后执行
> cat awk.txt|awk -F' ' 'BEGIN{total=0}{total=total+$2;print $2}END{print total}'
10
23
12
45
统计当前目录文件大小和
> ll|awk 'BEGIN{size=0}{size=size+$5}END{print "total size:"size}'
total size:7467
结合printf格式化输出使用
printf [-v var] format [arguments]
\r 回车
\n 换行
\t tab键
%ns n个长度的string
%ni n个长度的integer
%a.bf 总长为a,小数点后b个长度格式的float
> cat awk.txt |awk -F' ' '{printf "%4s%4i\t%4.2f\n",$1,$2,$3}'
a 10 20.00
b 23 34.00
c 12 13.00
分享到:
相关推荐
Linux awk 命令详解 Linux awk 命令是 Unix 环境中的一种功能强大的文本处理工具,由 Bell Labs 的 Alfred Aho、Peter Weinberger 和 Brian Kernighan 于 1977 年开发。awk 命令的主要功能是从文件或字符串中基于...
最牛逼的Linux awk命令详细介绍和实例快速学习
Linux awk 命令 AWK是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。 语法 awk [选项参数]...
Linux中的`awk`命令是一个强大的文本分析工具,它允许用户基于特定的模式匹配对文本文件进行处理。在本文中,我们将深入探讨`awk`的基本概念、语法和常见用途。 首先,`awk`有三个主要版本:`awk`、`nawk`和`gawk`...
Linux中的awk命令是一个强大的文本分析工具,用于处理和解析文件中的数据。awk的名称来源于它的创始人: Alfred V. Aho, Peter J. Weinberger, 和 Brian W. Kernighan。awk有三个主要版本:awk、nawk(new awk)和...
Linux中的AWK命令是一个强大的文本分析工具,它允许用户在数据流中进行模式匹配和处理。这个命令的名字来源于它的三位创始人—— Alfred V. Aho、Peter J. Weinberger 和 Brian W. Kernighan 的首字母缩写。在Linux...
Linux中的`awk`命令是一个强大的文本分析工具,用于处理和解析结构化的文本文件。它能够按照用户指定的模式对文本进行分析,并根据需要提取、修改或格式化数据。`awk`命令的名字来源于它的三位创始人——Aho、Wall和...
AWK 命令详解 AWK 是一个强大的文本分析工具,相对于 grep 的查找和 sed 的编辑,AWK 在其对数据分析并生成报告时,显得尤为强大。简单来说,AWK 就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分...
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首 字符。
### Linux 下 awk 命令详解 #### 一、引言 `awk` 是一个功能强大的文本处理工具,在 Unix 和类 Unix 操作系统(如 Linux)中被广泛使用。它不仅可以进行模式匹配,还能执行复杂的文本处理任务。本文将详细介绍 `awk...
Linux系统中的awk命令是一个功能强大的文本处理工具,它可以对输入(通常是文件)进行模式扫描和处理。awk命令常用于在Linux shell脚本中进行数据提取、文本转换、数据报告生成等操作。本文将对awk命令的基本知识...
### grep、sed、awk命令实例大练习 在Linux或Unix环境中,`grep`、`sed`和`awk`是三个非常强大的文本处理工具。通过掌握这些工具的基本用法及高级功能,用户可以高效地处理各种文本文件。下面将详细介绍如何使用...
在Linux世界中,熟悉awk命令对于日常的系统管理和数据分析非常有用。 awk的工作原理是逐行读取输入文件,然后根据用户定义的模式和动作来处理这些行。模式通常是一个正则表达式,动作则是一段代码,awk会在匹配到...
例如,如果你想从一个CSV文件中提取第二列的所有数据,可以使用以下awk命令: ```bash awk -F ',' '{print $2}' filename.csv ``` 这里,"-F ','"指定了逗号作为字段分隔符,而`print $2`则表示打印每行的第二个字段...
【Linux命令:awk命令1】 awk 是 Linux/Unix 环境下的一种强大的文本分析工具,它的名字来源于其三位创建者的名字首字母:Alfred Aho、Peter Weinberger 和 Brian Kernighan。awk 可以从标准输入、文件或其他命令的...
【Linux Awk 学习手册】 awk 是一个强大的文本分析工具,源于 UNIX 系统,由 Aho、Weinberg 和 Kernighan 三位开发者命名。它的全名并不表示特定的功能,而是创建者姓名的首字母缩写。awk 的主要功能在于对文本数据...
Linux 主要 shell 命令、sed、awk 使用详解 本文将详细介绍 Linux 的主要 shell 命令、sed 和 awk 的使用方法和原理。shell 是用户和 Linux 操作系统之间的接口,用户可以通过 shell 输入命令来操作 Linux 系统。...
### Linux Awk 学习知识点详解 #### 一、Awk 简介与基本用法 Awk 是一种在 Unix 和类 Unix 操作系统上广泛使用的文本处理工具,能够帮助用户快速处理文本数据,执行复杂的文本分析任务。Awk 的主要功能包括模式...
linux文本处理工具awk命令详解,超详细的讲解awk命令,更多实战案例