Awk 是一个维护和处理文本数据文件的强大语言。
在文本数据有一定的格式,即每行数据包 含多个以分界符分隔的字段时,显得尤其有用。
Awk 基础语法:
Awk –Fs ‘{command}’ input-file
-F 为字段分界符。如果不指定,默认会使用空格作为分界符
典型的 awk 程序包含下面三个区域:
- BEGIN 区域
Begin 区域的语法: BEGIN { awk-commands } BEGIN 区域的命令只最开始、在 awk 执行 body 区域命令之前执行一次。 BEGIN 区域很适合用来打印报文头部信息,以及用来初始化变量。 BEGIN 区域可以有一个或多个 awk 命令 关键字 BEGIN 必须要用大写 BEGIN 区域是可选的 - body 区域
body 区域的语法: /pattern/ {action} body 区域的命令每次从输入文件读取一行就会执行一次 如果输入文件有 10 行,那 body 区域的命令就会执行 10 次(每行执行一次) Body 区域没有用任何关键字表示,只有用正则模式和命令。 - 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<