1
十二/08
0

关于AWK

awk以发展这种语言的人 Aho . Weninberger和Kernigham命名。该语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息。 awk抽取信息
后,才能进行其他文本操作。完整的 awk脚本通常用来格式化文本文件中的信息。

据自己理解,awk就是一个列编辑器,sed是流编辑器。配合使用,在linux下的编辑处理文件将会方便很多。首先看看awk的运行方法。大体有三种,类似python的运行方法。

1。 命令行方式。 例如: awk [-F 分隔符] ‘awk命令’ file。其中默认列分隔符是空格,但一些文件的分隔符是分号或者冒号,这个时候就要用-F选项设定。

2。 awk脚本修改为可执行,直接运行。

3。 awk -f 脚本文件 文件。后两种方式和shell以及python比较类似,不再细说。

每个域(列)用$加索引表示,比如第一个域用$1, 第二个域用$2, 以此类推。所有域用$0表示。

比如以下操作数据:

terrysco:男:26:135********

这个数据一共4个域,用冒号隔开,如果想把姓名和电话显示出来并写入另一个文件,配合tee命令很容易做到。awk -F: {print $1, $4} | tee somefile

另外,我们可以加入一些初始信息和结束信息。awk -F: ‘BEGIN {print "Name\tPhone\n—–"} {print $1, $4} END {"some end data"}’

其中,要注意几点:  确保整个awk命令用单引号括起来。
• 确保命令内所有引号成对出现。
• 确保用花括号括起动作语句,用圆括号括起条件语句。
• 可能忘记使用花括号,也许你认为没有必要,但 awk不这样认为,将按之解释语法。

awk的基础使用就这么点,但它是一门很强大的语言,需要慢慢应用和体会,首先要熟悉正则表达式。在grep中的应用更是如此。
 

 

关键字: ,