awk 和 sed


 什么是 awk


      如果要格式化报文或从一个大的文本文件中抽取数据包,那么a w k可以完成这些任务。它
在文本浏览和数据的熟练使用上性能优异。
整体来说, a w k是所有s h e l l过滤工具中最难掌握的,不知道为什么,也许是其复杂的语法
或含义不明确的错误提示信息。在学习a w k语言过程中,就会慢慢掌握诸如Bailing out 和
a w k : c m d . L i n e :等错误信息。可以说a w k是一种自解释的编程语言,之所以要在s h e l l中使用a w k
是因为a w k本身是学习的好例子,但结合a w k与其他工具诸如g r e p和s e d,将会使s h e l l编程更加
容易

例子:


1.F 代表指定分割符 默认awk使用 空格和制表符,如果需要修改默认值 需要把 -F放在 awk 的最前面


  打印 用户passwd 文件 中 第一行 数据 中 用冒号 分割的第一个字段

扫描二维码关注公众号,回复: 1410283 查看本文章

 [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

猜你喜欢

转载自8366.iteye.com/blog/803100