码迷,mamicode.com
首页 > 其他好文 > 详细

文本三剑客--AWK

时间:2019-07-12 20:09:39      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:host   执行   工具   service   cat   语法   就是   pat   etc   

awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及 生成报表等等。

在 Linux 系统下默认 awk 是 gawk,它是 awk 的 GNU 版本。可以通过命令查看应用的版本:ls -l /bin/awk

基本的命令语法:awk option ‘pattern {action}‘ file

其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。 花括号用于根据特定的模式对一系列指令进行分组。

awk 处理的工作方式与数据库类似,支持对记录和字段处理,这也是 grep 和 sed 不能实现的。 在 awk 中,缺省的情况下将文本文件中的一行视为一个记录,逐行放到内存中处理,而将一行中的 某一部分作为记录中的一个字段。用 1,2,3...数字的方式顺序的表示行(记录)中的不同字段。用 $后跟数字,引用对应的字段,以逗号分隔,0 表示整个行。 

 

OPTION

选项 描述
-f 从文件中读取 awk 程序源文件 
-F 指定 fs 为输入字段分隔符 
-v var=value 变量赋值 
--posix 兼容 POSIX 正则表达式 
--dump-variables=[file]  把 awk 命令时的全局变量写入文件, 默认文件是 awkvars.out 

 

pattern

模式 描述
BEGIN{ } 给程序赋予初始状态,先执行的工作 
END{ } 程序结束之后执行的一些扫尾工作
/regular expression/ 为每个输入记录匹配正则表达式
pattern && pattern 逻辑 and,满足两个模式
pattern1, pattern2 范围模式,匹配所有模式 1 的记录,直到匹配到模式 2

action 就是print、流程控制。I/O语句

1.从文件读取awk的程序

[root@localhost ~]# cat test.awk
{print $2}
[root@localhost ~]# tail -n3 /etc/services |awk -f test.awk
48619/tcp
48619/udp
49000/tcp

文本三剑客--AWK

标签:host   执行   工具   service   cat   语法   就是   pat   etc   

原文地址:https://www.cnblogs.com/linux-error/p/11178117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!