linux awk 学习笔记
2009-05-04 09:42
344 查看
从格式化报文或从一个大的文本文件中抽取数据包,a w k是一种自解释的编程语言
在命令中调用a w k时,a w k脚本由各种操作和模式组成。
awk执行时,其浏览域标记为$ 1,$ 2 . . . $ n。这种方法称为域标识。
使用$ 1 , $ 3表示参照第1和第3域,注意这里用逗号做域分隔。用$0。表示所有域
awk条件操作符
操作符 描述操作符描述
< 小于 > = 大于等于
< = 小于等于 ~ 匹配正则表达式
= = 等于 !~ 不匹配正则表达式
复合模式或复合操作符用于形成复杂的逻辑操作,复杂程度取决于编程者本人。有必要
了解的是,复合表达式即为模式间通过使用下述各表达式互相结合起来的表达式:
&& AND 语句两边必须同时匹配为真。
|| O R 语句两边同时或其中一边匹配为真。
! 非求逆
从s h e l l中向a w k传入字符串
例:
[root@localhost ~]# echo "test" | awk '{print length($0)}'
4
[root@localhost ~]# STR="mydoc.txt"
[root@localhost ~]# echo $STR | awk '{print substr($STR,7)}'
txt
[root@localhost ~]# STR=waovWG
[root@localhost ~]# echo $STR | awk '{if($STR ~ /[^a-z A-Z]/) print "1"}'
[root@localhost ~]# STR=12LIW
[root@localhost ~]# echo $STR | awk '{if($STR ~ /[^a-z A-Z]/) print "1"}'
1
[root@localhost ~]#
向一行a w k命令传值
在a w k执行前将值传入a w k变量,需要将变量放在命令行中,格式如下:
awk 命令变量=输入文件值
例如:
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 190 70 119 0 9 40
-/+ buffers/cache: 21 168
Swap: 509 0 509
[root@localhost ~]# free -m | awk '{if ($4<=LIMIT) print $0}' LIMIT=120
Mem: 190 70 119 0 9 40
[root@localhost ~]# free -m | awk '{if ($4<=LIMIT) print $0}' LIMIT=250
Mem: 190 70 119 0 9 40
-/+ buffers/cache: 21 168
[root@localhost ~]# free -m | awk '{if ($1 ~ /Mem/ && $4<=LIMIT) print $0}' LIMIT=250
Mem: 190 70 119 0 9 40
[root@localhost ~]#
在命令中调用a w k时,a w k脚本由各种操作和模式组成。
awk执行时,其浏览域标记为$ 1,$ 2 . . . $ n。这种方法称为域标识。
使用$ 1 , $ 3表示参照第1和第3域,注意这里用逗号做域分隔。用$0。表示所有域
awk条件操作符
操作符 描述操作符描述
< 小于 > = 大于等于
< = 小于等于 ~ 匹配正则表达式
= = 等于 !~ 不匹配正则表达式
复合模式或复合操作符用于形成复杂的逻辑操作,复杂程度取决于编程者本人。有必要
了解的是,复合表达式即为模式间通过使用下述各表达式互相结合起来的表达式:
&& AND 语句两边必须同时匹配为真。
|| O R 语句两边同时或其中一边匹配为真。
! 非求逆
从s h e l l中向a w k传入字符串
例:
[root@localhost ~]# echo "test" | awk '{print length($0)}'
4
[root@localhost ~]# STR="mydoc.txt"
[root@localhost ~]# echo $STR | awk '{print substr($STR,7)}'
txt
[root@localhost ~]# STR=waovWG
[root@localhost ~]# echo $STR | awk '{if($STR ~ /[^a-z A-Z]/) print "1"}'
[root@localhost ~]# STR=12LIW
[root@localhost ~]# echo $STR | awk '{if($STR ~ /[^a-z A-Z]/) print "1"}'
1
[root@localhost ~]#
向一行a w k命令传值
在a w k执行前将值传入a w k变量,需要将变量放在命令行中,格式如下:
awk 命令变量=输入文件值
例如:
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 190 70 119 0 9 40
-/+ buffers/cache: 21 168
Swap: 509 0 509
[root@localhost ~]# free -m | awk '{if ($4<=LIMIT) print $0}' LIMIT=120
Mem: 190 70 119 0 9 40
[root@localhost ~]# free -m | awk '{if ($4<=LIMIT) print $0}' LIMIT=250
Mem: 190 70 119 0 9 40
-/+ buffers/cache: 21 168
[root@localhost ~]# free -m | awk '{if ($1 ~ /Mem/ && $4<=LIMIT) print $0}' LIMIT=250
Mem: 190 70 119 0 9 40
[root@localhost ~]#
相关文章推荐
- 转载自马哥视频学习笔记---Linux Web服务器网站故障分析常用的命令之awk用法的简单示例
- 【linux学习笔记】awk用法总结
- Vbird的Linux私房菜学习笔记之正则表达式-awk
- Linux学习笔记---day8(3.27)sed,awk与正则表达式
- Linux命令之awk学习笔记
- Linux学习笔记_基本命令复习(seq sed awk)
- linux学习笔记(18) - sed和awk
- Linux学习笔记------day9(3.28)-----find中exec的用法,awk赋值
- Linux-awk学习笔记
- [linux]awk 学习笔记
- Linux学习笔记-grep,sed,awk(鸟哥12章 老段视频笔记)
- Linux下sed,awk,grep,cut,find学习笔记
- Linux学习笔记:awk详细用法
- awk 好用的数据处理工具,linux学习笔记1
- linux awk 学习笔记三(结构化命令、函数)
- 2018-1-17 Linux学习笔记(awk)[重要]
- 写得蛮好的linux学习笔记
- Linux内核学习笔记: uid之ruid,euid,suid
- Linux 文件权限 学习笔记
- linux 进程学习笔记-运行新进程