awk 和 sed
什么是 awk
如果要格式化报文或从一个大的文本文件中抽取数据包,那么a w k可以完成这些任务。它
在文本浏览和数据的熟练使用上性能优异。
整体来说,awk是所有shell过滤工具中最难掌握的,不知道为什么,也许是其复杂的语法
或含义不明确的错误提示信息。在学习awk语言过程中,就会慢慢掌握诸如Bailingout和
awk:cmd.Line:等错误信息。可以说awk是一种自解释的编程语言,之所以要在shell中使用awk
是因为awk本身是学习的好例子,但结合awk与其他工具诸如grep和sed,将会使shell编程更加
容易例子:
1.F 代表指定分割符 默认awk使用 空格和制表符,如果需要修改默认值 需要把 -F放在 awk 的最前面
打印 用户passwd 文件 中 第一行 数据 中 用冒号 分割的第一个字段
[root@xhuvm03 scripts]# cat /etc/passwd | sed -n '1p' | awk -F ":" '{print $1}'
2. 打印 passwd文件中 所用的 用户名
cat /etc/passwd | awk -F ":" '{print $1}'
3. 只查出passwd文件中的用户名,别且在开始和结束 打印 标识,用到了2个动作 BEGIN 和 END
awk -F ":" 'BEGIN {print "---begin----"} {print $1} END {print "---end---"}' /etc/passwd
4. 打印 用户名 为 oracle 的记录信息
awk -F ":" '{if($1~/oracle/) print $0}' /etc/passwd
不想用if 可以
awk -F ":" '$1=="root" {print $0}' /etc/passwd
5.
参考:
AWK指令详解: http://blog.csdn.net/binger819623/archive/2010/03/28/5425502.aspx