基本就是翻译一下http://www.theunixschool.com/p/awk-sed.html里面的内容
首先看语法,awk的命令格式是 awk 'pattern{action}' file,表示awk对文件中所有符合pattern的hang执行action操作,如果pattern为空,则默认为对文件中的每一行进行操作,如果action为空,则默认为打印这一行。但是如果pattern和action都为空,那什么操作都不会做。
其次看特殊变量,awk自动的把每行都分成若干列,默认的分隔符是空格和tab,可以通过-F指令来指定其他的分隔符,分割出来的列用$1, $2……来代表,$0则表示整行,还有个特殊符号NR表示行号。下面看几个例子:
先创建一个用空格和tab分隔的文件file1
引用
$ cat file1
FirstName LastName Age
John Banks 42
Neil Santos 25
Sara Young 17
打印第二列的姓
引用
$ awk '{print $2}' file1
LastName
Banks
Santos
Young
不想打印第一行的LastName这个提示
引用
$ awk 'NR!=1{print $2}' file1
Banks
Santos
Young
打印整个文件
引用
$ awk '1' file1
FirstName LastName Age
John Banks 42
Neil Santos 25
Sara Young 17
或者用另一种语法
引用
$ awk '{print $0}' file1
FirstName LastName Age
John Banks 42
Neil Santos 25
Sara Young 17
现在创建一个用逗号做分隔符的文件,也就是csv格式的文件
引用
cat file2
First Name, Last Name, age
Barack,Obama,50
字段1,字段2,44
打印第二个字段
引用
$ awk -F, '{print $2}' file2
Last Name
Obama
字段2
还有另一种写法
引用
$ awk '{print $2}' FS=, file2
Last Name
Obama
字段2
指定输出字段的分隔符
引用
$ awk '{print $1, $3}' FS=, OFS="|" file2
First Name| age
Barack|50
字段1|44
要注意的是,如果使用-F指定分隔符,那么要放在patter和action之前,如果使用FS指定分隔符,要放在patter和action之后,如果放错了会提示语法错误。FS和OFS所用的分隔符,在不会引起歧义或者转义的情况下,可以不加双引号。
分享到:
相关推荐
awk 是一门编程语言,它的基本操作是在一组文件上查找模式,并在包含这些模式实例的那 些行或字段上进行指定的动作。awk 使得特定数据的选择和变换操作更易于表达
awk在linux系统下的使用必不可少。 awk 是一种程序语言. 它具有一般程序语言常见...本手册为awk入门的学习指引, 其内容将先强调如何撰写awk程序,未列入进一步解题方式的应 用实例, 这部分将留待UNIX进阶手册中再行讨论.
awk完整教程 0基础入门到精通 awk完整教程 0基础入门到精通
AWK入门教程和实战案例 linux脚本
AWK入门指南,正则表达式使用,高级输出,控制语句,语言详解
Awk入门教程。作者 Bruce Barnett 注:英文版。以下是目录 Why learn AWK? Basic Structure Executing an AWK script Which shell to use with AWK? Dynamic Variables The Essential Syntax of AWK ...
awk入门及提高.pdf
非常好的awk文档,深入浅出 一段代码,一段例子,很适合入门
awk编程语言入门--awk是linux下的一个命令,他对其他命令的输出,对文件的处理都十分强大,其实他更像一门编程语言,他可以自定义变量,有条件语句,有循环,有数组,有正则,有函数等。
Linux下的AWK入门教程.docx
awk 实例入门 教程 AWK_样式扫描和处理语言
这个资源对入门级的人来说应该是一个很好上手的资料
初步介绍awk入门的一些基础知识。awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。
很好很详细的awk入门教程!你值得拥有!
awk简介,UNIX/LINUX下一种可以替代小程序的高效工具
非常全面而细致的AWK资料,需要的朋友可以看下
awk 入门教程_阮一峰的网络日志.pdf 每天学习一个命令:awk 处理文本.pdf 在Window中使用 AWK.pdf
能够快速了解awk,能够利用awk简单处理文档
awk 快速入门包含sed 正则表达式 awk 快速入门包含sed 正则表达式