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命令详细介绍和实例快速学习
Linuxawk命令详解[归类].pdf
linux awk 命令大全 awk 常用命令
Linux awk 命令 AWK是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。 语法 awk [选项参数]...
linux awk命令详解.doc
linux awk 命令的基本用法,awk 命令详解,强大的awk
本文档详细介绍linux命令,linux工具awk的使用,对初学者非常有帮助,希望读者能从该文档受益。
NULL 博文链接:https://greatwqs.iteye.com/blog/1871506
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首 字符。
awk命令各种用法详解,有案例 awk命令各种用法详解,有案例 awk命令各种用法详解,有案例
本文主要对linux-shell脚本命令中的awk命令进行简单介绍,希望对您有所帮助。
linux grep sed awk命令的综合运用以及详解
linu awk命令详解 对于喜欢linux学习的爱好者
linux文本处理工具awk命令详解,超详细的讲解awk命令,更多实战案例
在我们初学嵌入式开发的时候,总会出现一个问题。那就是C语言和嵌入式C编程有什么区别?而嵌入式工程师一般都会告诉你,其区别在于嵌入式的C语言是跑在嵌入式的开发板上的,CPU和电脑不一样,所以编译器也是不一样的...
awk命令全集!在linux时间里面的工具
本文将使用命令awk将具有某个关键字的段落提取出来。 准备数据 Finalizer #3 daemon prio=8 os_prio=0 tid=0x00007fb2dc1aa800 nid=0x63f6 in Object.wait() [0x00007fb2be61f000] java.lang.Thread.State: ...
Linux主要shell命令、sed、awk使用详解
shell中的awk命令 文章目录shell中的awk命令1.awk–“样式扫描和处理语言”2.awk模式匹配3.记录和域4.指定分隔符`-F “”` 指定分隔符`FS=””` 指定分隔符5.关系和布尔运算值6.表达式7.系统变量8.格式化输出9.内置...
awk命令简linux_tee_命令详解Sed_命令.doc SHELL里面的常用命令 有助于SHELL的提高