awk命令
来源:互联网 发布:ins社交软件全名 编辑:程序博客网 时间:2024/06/08 08:59
1.awk命令行
awk的调可以定义变量,提供程序并指定输入文件,其形式如下
awk [-F fs] [-v var=value…] ‘program’ [--][var=value…] [file(s)]
awk [-F fs] [-v var=value…] –f programfile[--] [var=value…] [file(s)]
短程序通常是直接在命令行上提供,而比较长的程序,则用-f选项指定。
如果命令行未指定文件名,则awk会读取标准输入。
--是特殊选项,指出awk本身已没有更进一步的命令选项,任何接下来的选项都可被你的程序使用。
-F选项用来重新定义默认字段分隔字符,且一般惯例将它作为第一个命令行选项,紧接在-F选项后的fs参数是一个正则表达式。字段分隔符也可设置使用内建变量FS所指定的。
初始化的-v选项必须放在命令行上直接给定的任何程序之前,它们会在程序启动之前以及处理任何文件之前生效,在一命令行程序之后的-v选项会被解释为一个文件名
2.awk程序模型
awk把输入流看作一连串记录的集合,每条记录都可进一步细分为字段。通常,一行一个记录,而字段是由一个或多个非空白字符的单词组成。然而,是什么构成一条记录和一个字段,完全是由程序员控制,且它们的定义,甚至可以在处理期间更改。
一个awk程序是一对以模式与大括号框起来的操作组合而成的。针对每个匹配输入数据的模式,操作会被执行,且所有模式都会针对每条记录而检查。
模式或操作可省略其中一个。如果省略模式,则操作将被应用到每条输入记录,如果操作省略,则默认操作是打印匹配之记录在标准输出上。
输入会自动地由一个输入文件切换到下一个,且awk本身通常会处理每个输入文件的打开,读取与关闭。
awk以保留字BEGIN与END提供两种特殊模式,与BEGIN关联的操作只会执行一次,在任何命令行文件或一般命令行赋值被处理之前,但是在任何开头的-v选项指定已经完成之后。END操作也是只执行一次,用于所有输入数据已被处理完成之后,它多半用于产生摘要报告或是执行清除操作。当指定多个BEGIN或END模式,则它们将按照在awk程序里的顺序,一次执行。
3.程序元素
awk提供了标量与数组两种变量以保存数据、数字与字符串表达式,还提供了一些语句类型以处理数据:赋值、注释、条件、函数、输入、循环及输出。
3.1注释与空白
awk里的注释是从#开始到该行结束。空行等同于空的注释。
3.2字符串与字符串表达式
awk里的字符串常数是以引号定界。字符串可包含任何8-bit的字符,除了控制字符NUL以外。字符串可包含零至多个字符,且在字符串的长度上没有限制,视可用内存而定。
反斜杠转义序列允许非打印字符的表示。
awk提供许多内建函数,如length(string)字符串长度函数
字符串的比较,用的是传统的关系运算符:==,!=,<,<=,>,>=。比较后返回1为真,0为假。比较不同长度的字符串,且其中一个字符串为另一个的初始子字符串时,较短的会定义为小于较长的那个。
awk中没有字符串接续运行符。两个连续字符串,会自动地连接在一起。
将数字转换为字符串,通过数字连接空字符串即可。如n=123 s = “”n
awk对正则表达式的支持,有两个运算符:~(匹配)与!~(不匹配)
awk中的split(s, a, sep)是用分隔符sep将字符串s分离成数组a
- awk 命令
- awk 命令
- awk命令
- awk命令
- awk 命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk 命令
- awk命令
- awk命令
- awk命令
- 每天学一点3
- 找出字符串中第1个只出现1次的字符
- 从坷里化理解Py带参数的decorator
- 2015070408 - EffactiveJava笔记 - 第60条 优先使用标准异常
- java策略模式
- awk命令
- Emacs常用命令快速参考
- windows 下Mysql重新设置root密码
- Ubuntu 14.04 安装QtSerialPort
- 国嵌C++专题2-乾坤合一
- C++ Primer 4th 要点总结
- 转载面试
- Android ListView 数据混乱
- hdu 4941 Magical Forest