学习啦>学习电脑>操作系统>Linux教程>

linux命令之awk命令

佳洲分享

  awk命令是一种编程语言,在linux系统中可以对文本或者数据进行处理。下面由学习啦小编为大家整理了linux命令之awk命令的相关知识,希望对大家有所帮助!

  linux命令之awk命令详解

  awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。

  awk命令格式和选项

  语法形式

  awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s)

  常用命令选项

  -F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:

  -v var=value 赋值一个用户定义变量,将外部变量传递给awk

  -f scripfile 从脚本文件中读取awk命令

  -m[fr] val 对val值设置内在限制,-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。

  linux命令之awk命令模式和操作

  awk脚本是由模式和操作组成的。

  模式

  模式可以是以下任意一个:

  /正则表达式/:使用通配符的扩展集。

  关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试。

  模式匹配表达式:用运算符~(匹配)和~!(不匹配)。

  BEGIN语句块、pattern语句块、END语句块:参见awk的工作原理

  操作

  操作由一个或多个命令、函数、表达式组成,之间由换行符或分号隔开,并位于大括号内,主要部分是:

  变量或数组赋值

  输出命令

  内置函数

  控制流语句

  附:linux命令awk脚本基本结构

  awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file

  一个awk脚本通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。任意一个部分都可以不出现在脚本中,脚本通常是被单引号或双引号中,例如:

  awk 'BEGIN{ i=0 } { i++ } END{ print i }' filename

  awk "BEGIN{ i=0 } { i++ } END{ print i }" filename

    3605119