liunx的awk命令
来源:互联网 发布:java中逻辑或 编辑:程序博客网 时间:2024/05/21 09:39
liunx中文本处理的三大利器:awk、sed、grep虽然有简单的使用过,但对其具体的概念和操作一直很模糊,我准备从网上和鸟哥的linux私房菜中总结一些具体的概念,今天先写一下awk。
awk是linux中一个非常棒的文本处理工具,适合进行小型的数据处理。
awk的基本运行模式如下:
awk既可以处理后续接的文件又可以处理来自前个命令的standart output,相对于sed常常用于对一整个行进行处理,awk倾向于一行当中分成数个“栏位”进行处理,默认的“栏位”分隔符为空格键或者tab键。
例如:我先用last取出5个登录者的数据:
然后我们用awk对这些数据进行处理:我向要取出登录者的帐号与IP地址和登录时间,并用空格键隔开
$0表示整个行,$1表示第一个栏位,$2表示第二个栏位以此类推。
awk处理数据的流程为:
1、读入第一行,并将第一行的数据填入$0,$1,$2....中
2、依据条件类型的限制,判断是否要进行后面的动作
3、执行完所有的动作与条件类型
4、如果还有后续的行,就重复1,2,3步动作,直到所有的数据处理完成
所以awk一次处理的是一行数据,而处理的最小单位为一个栏位。
awk中的内建变量:NF:每一行($0)拥有的栏位总数;NR:目前awk处理的是第几行数据;FS:目前的分割字节,默认为空白键
awk逻辑判断:<,>,<=,>=,==,!=,赋值直接用=
实际操作:
处理/etc/passwd中的数据,要求以“:”为分隔符,当UID小于10时 ,输出帐号和UID
可以看到除了第一行,都按格式进行了输出,这是因为在处理第一行数据时还是以空白键为分割符的,虽然定义了FS=“:”,但是直到处理第二行时才生效。
如果想要使第一行就有效,可以使用BEGIN关键字预处理awk中的变量:
awk的几个注意事项:所有的awk动作,即'{ }'中的动作,如果有需要多个命令辅助时,可以用分号间隔,或者使用enter键分割
awk中变量不需要“$”
- liunx的awk命令
- Liunx awk命令详解
- liunx的管道命令
- 常用的liunx命令
- liunx下的解压缩命令
- 我的liunx命令集合
- 查看liunx版本的命令
- liunx的基础命令-02
- liunx的基础命令-03
- 强大的awk命令
- 常用的awk命令
- awk 命令的使用
- linux 的awk命令
- Linux的awk命令
- awk命令的使用
- awk的命令语法
- awk 命令的使用
- Liunx 命令
- Redis LRU
- 设计模式(2)
- BZOJ2521: [Shoi2010]最小生成树
- 最小公倍数
- 152. Maximum Product Subarray
- liunx的awk命令
- Java Web中前台与后台传递参数小结
- BeaEngine反汇编引擎在C中的使用
- script三种加载方式
- 常用git 命令
- LeetCode 100. Same Tree(二叉树)
- 巴士博弈 【总结】
- Unity实现Angry Bird弹弓发射功能
- 数组快速排序、去重算法