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

相关推荐