sed & awk 101 hacks 学习笔记 -awk

本文介绍了awk的基础语法,包括BEGIN和END区域的使用,字段和记录分隔符(FS和RS)的概念,以及OFS和ORS的影响。通过示例展示了如何处理不同分隔符的文件,以及如何自定义输出格式。
摘要由CSDN通过智能技术生成

Awk 是一个维护和处理文本数据文件的强大语言。
在文本数据有一定的格式,即每行数据包 含多个以分界符分隔的字段时,显得尤其有用。

Awk 基础语法:
Awk –Fs ‘{command}’ input-file
-F 为字段分界符。如果不指定,默认会使用空格作为分界符

典型的 awk 程序包含下面三个区域:

  1. BEGIN 区域
    Begin 区域的语法: BEGIN { awk-commands } BEGIN 区域的命令只最开始、在 awk 执行 body 区域命令之前执行一次。  BEGIN 区域很适合用来打印报文头部信息,以及用来初始化变量。  BEGIN 区域可以有一个或多个 awk 命令  关键字 BEGIN 必须要用大写  BEGIN 区域是可选的
  2. body 区域
    body 区域的语法: /pattern/ {action} body 区域的命令每次从输入文件读取一行就会执行一次  如果输入文件有 10 行,那 body 区域的命令就会执行 10 次(每行执行一次)  Body 区域没有用任何关键字表示,只有用正则模式和命令。
  3. END block
    END 区域的语法: END { awk-commands } END 区域在 awk 执行完所有操作后执行,并且只执行一次。  END 区域很适合打印报文结尾信息,以及做一些清理动作  END 区域可以有一个或多个 awk 命令  关键字 END 必须要用大写  END 区域是可选的

当遇到一个包含多个字段分隔符的文件时,不必担心,FS 可以搞定。你可以使用正则表达 式来指定多个字段分隔符,如 FS = “[,:%]” 指定字段分隔符可以是逗号 ,或者分号 : 或者百 分号 %。
awk ‘BEGIN {FS="[,:%]"}{print $2,$3}’ employee-multiple-fs.txt<

sedawk是用户、程序员和管理员应用的工具。之所以称为sed是因为它是一个流编辑器(stream editor),用于对许多文件执行一系列的编辑操作。awk是根据它的开发者Aho、Weinberger和Kernighan命名的。awk是一种编程语言,它可以使你很容易地处理结构化数据和生成格式化报告。第二版介绍了awk的POSIX标准,同时介绍了一些可免费使用的以及商业版的awk。 本书在一开始就给出了一个概述和指南,论述了从grep到sed再到awk不断改进的功能。sedawk具有相同的命令行语法,以脚本的形式接收用户的命令。因为所有这三个程序都使用UNIX正则表达式,因此书中用一章的篇幅来介绍UNIX的正则表达式语法。 然后,本书介绍如何编写sed脚本。从编写几行简单的脚本开始,学习进行手工编辑操作的其他基本命令和高级命令,以及由此引入的简单程序结构。这些高级命令包括用于处理保持空间、即一个临时缓冲区的命令。 本书的第二部分经过广泛的修订,包括了POSIX awk,以及3个可免费使用的和3个商业版的awk。本书介绍了awk语言的主要特点以及如何编写简单的脚本。你还能了解到: * 通用的程序结构 * 如何使用awk的内部函数 * 如何编写用户的定义函数 * awk程序的调试技术 * 如何开发一个处理索引的应用程序,该程序演示了awk的强大功能 * 得到不同awk版本的FTP和联系信息 本书还包含了一组用户提供的程序,这些程序展示了广泛的sedawk程序风格和技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值