awk的用法
awk是什么
awk是一种优良的文本处理工具,同时也是一种脚本语言。awk的三位作者者已将它正式定义为“样式扫描和处理语言”。awk脚本允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。我认为,awk命令其实就是awk脚本的解释器。据说sed和grep能做的事情,awk都可以做。
awk可以做什么,一般用它所什么
可以进行数学运算和字符串处理,截至目前,我用过做的是筛选字符串。
awk的调用方式
命令方式1
awk '{print $1}'
命令方式2
awk -f script.awk textfile1
脚本方式
myscript.awk textfile1
这种脚本的第一行一定要是"#!/bin/awk -f",并且脚本要有执行权限
PS:
我说的awk命令是指在终端输入的红色个"awk",有些地方把awk对文本的具体处理动作叫做awk命令,我认为这些动作叫做awk指令合适,如上文中的蓝色。
我看有些地方把awk脚本叫做awk程序,我还是管他叫awk脚本吧,如上文的绿色。
awk工作方式
有3个阶段,工作的每个阶段貌似是有一组指令,用一个{}括住,是这样的吗?
记录和域,域分隔符
运算符:关系,罗辑,算术
awk变量
awk系统变量(内置变量)
格式化输出
字符串函数
流程控制:条件语句,循环语句
awk数组
补充:
在awk中访问shell变量的方法
1.使用单引号,注意一定是单引号,否则会在给awk传参时就展开变量,就错了
awk 'BEGIN {print '$a'}'
2.通过awk的选项给awk定义变量,这样的变量访问时不用$,直接用名字
awk -v a=1 'BEGIN {print a}'
awk的用法的更多相关文章
- Linux sed 和 awk的用法
sed用法: 原文链接:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html sed是一个很好的文件处理工具,本身是一个管 ...
- 文本处理三剑客之AWK的用法
1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...
- gawk(awk)的用法案例
gawk(awk)的用法案例 本文首先简单介绍一个gawk和awk的区别,然后是一点基本使用流程,最后是自己做的一个分析数据文件的脚本代码,供大家参考.另外想了解基本流程的入门知识的可以下载附件pdf ...
- linux awk的用法
linux awk的用法 <pre>[root@iZ23uewresmZ ~]# cat /home/ceshis.txtb 12 42 30 b 03 43 25 a 08 10 16 ...
- <三剑客> 老大:awk命令用法
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一 个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是lin ...
- awk命令_Linux awk 命令用法详解
本文索引 awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 将外部变量值传递给awk awk运算与判断 算术运算符 赋值运算符 逻 ...
- awk的用法(转)
awk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输 ...
- awk简单用法
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- 【转】awk 数组用法【精华贴】
文本处理的工作中,awk的数组是必不可少的工具,在这里,同样以总结经验和教训的方式和大家分享下我的一些学习心得,如有错误的地方,请大家指正和补充. awk的数组,一种关联数组(Associative ...
- awk基本用法
1 简介 awk实质是一种编程语言,基本作用在于查找和替换. 2 基本用法 有文本名称为:awk.txt 内容为: john.wang male 30 021-111111 lucy.yang f ...
随机推荐
- Qt布局管理: 停靠窗口QDockWidget类(纯代码实现)
转载:好儿郎~志在四方 详细描述: QDockWidget类提供了一个窗体部件,其可以停靠在QMainWindow,或其本身作为一个在桌面上的顶级窗口(也就是父窗体). QDockWidget类提供了 ...
- P2871 手链
传送 这个题的数据限制没有翻译出来,所以有可能产生爆内存现象 再此翻译一下:1<=n(物品个数)<=3402,1<=M(总重量)<=12880 (就这两个有点用) 显然这是一个 ...
- react事件中的事件对象和常见事件
不管是在原生的js还是vue中,所有的事件都有其事件对象,该事件对象event中包含着所有与事件相关的信息,在react中,所有的事件也有其事件对象,在触发DOM上的某个事件时,就会产生一个事件对象. ...
- WordPress无法显示Gravatar头像的解决方法
最近捣鼓WordPress博客发现无法正常显示Gravatar头像,查找原因是因为国内屏蔽了Gravatar导致的,这导致无数国内Wordpress网站头像无法显示,并且影响到了相关页面的访问速度(如 ...
- 廖雪峰Java6IO编程-2input和output-1inputStream
1.InputStream 1.1InputStream是所有输入流的超类: int read() * 读取下一个字节,并返回字节(0-255) * 如果已读到末尾,返回-1 * read()方法是阻 ...
- SCCM2012 R2实战系列之七:软件分发(exe)
在上一章节中,我们完成了SCCM 2012客户端代理软件的安装,现在就可以为客户端来部署应用程序了. SCCM2012增加了应用程序分发,同时保留了SCCM 2007里的包分发.应用程序分发可以直接对 ...
- 您真的会修改Active Directory域控制器计算机名称吗
从我开始做微软这行开始,就经常听说某某公司由于什么原因需要修改Active Directory域控制器计算机名称,但发现好多公司都是直接修改,导致了各种奇葩的问题,今天就给大家推荐一个修改Active ...
- 移动端动态font-size
/** * Created by shimin on 2017/8/18. *///计算dpr!function(win, lib) { var timer, doc = win.document, ...
- java入门简介
1.java运行环境 下载的jdk中包含了java运行时的环境(JRE),JRE又包含了java虚拟机(JVM) 2.java运行过程 源文件(.java)由编译器编译为字节码(.class)文件,再 ...
- PHP unset()函数销毁变量
<?php // 销毁单个变量 unset ($var); // 销毁单个数组元素 unset ($arr['a']); // 销毁多个变量 unset ($var1, $var2, $var3 ...