博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AWK文本处理工具(Linux)
阅读量:6312 次
发布时间:2019-06-22

本文共 1749 字,大约阅读时间需要 5 分钟。

AWK文本处理工具(Linux)

PS:刚开始实习,就给了个处理百万级别数据的任务,以前学过SHELL的一些东西sed/awk之类的处理,但是也没有具体的应用,只是在10几行10几列的小数据操作过,所以要从新学习下,并应用在实际工作中。你可以用excel编辑还好,保存就卡死你!

什么是AWK

  awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能,因为awk是三个人名的缩写,他们是:Aho、(Peter)Weinberg和(Brain)Kernighan。正是这三个人创造了awk---一个优秀的样式扫描与处理工具。

AWK使用方法

  awk语言最基本的功能是在文件或字符串中基于指定的规则浏览和抽取信息。

  有三种方式可调用awk:
  1. 命令行方式
  2. 将所有的awk命令插入一个文件,并利用chmod使awk文件成为执行 -f scripts.awk
  3. 将所有的awk命令插入一个单独文件,然后调用 #!/bin/awk -f

具体的使用方法

1.保存awk输出

  从myfile文件保存到nwefile文件中,这里的$0表示所有内容

awk '{print $0}'  myfile>newfile

2.使用tee,在输出到文件的同时输出到屏幕(利用管道'|')

awk '{print $0}' myfile |tee newfile

3.awk 一般的语法形式

awk [-Field-separator] 'commands' input-file(s)awk -f awk-script-file input-file

4.awk脚本的一般形式

#awk-script-file.awkBEGIN {FS=","} {    print $1} END {print "FINISH"}

其中,FS与命令行的-F是同样的,用来设定分隔符,在处理SCV文件时候需要把“,”作为分隔符

AWK内置函数

  awk之所以成为一种优秀的程序设计语言的原因之一是它吸收了某些优秀的程序设计语言语言的许多优点。这些优点之一就是内置函数的使用,awk定义并支持了一系列的内置函数,由于这些函数的使用,使得awk提供的功能更为完善和强大。

内置字符串函数:

gsub(r,s)           在整个$0中用s替代rawk 'gsub(/name/,"xingming") {print $0}' temp gsub(r,s,t)         在整个t中用s替代r index(s,t)          返回s中字符串t的第一位置,失败返回0awk 'BEGIN {print index("Sunny","ny")}' temp     返回4length(s)           返回s的长度match(s,r)          测试s是否包含匹配r的字符串,失败返回0 也可以使用~/xxx/awk '$1=="J.Lulu" {print match($1,"u")}' temp    返回4split(s,a,fs)       在fs上将s分成序列a awk 'BEGIN {print split("12#345#6789",myarray,"#")"'返回3,同时myarray[1]="12", myarray[2]="345", myarray[3]="6789" sprint(fmt,exp)     返回经fmt格式化后的exp sub(r,s)   从$0中最左边最长的子串中用s代替r(只更换第一遇到的匹配字符串)substr(s,p)         返回字符串s中从p开始的后缀部分substr(s,p,n)       返回字符串s中从p开始长度为n的后缀部分

2.awk中自定义语句

1.支持if判断

if(表达式)    {语句1} else if(表达式)    {语句2} else    {语句3}

2.支持for循环

for(变量 in 数组)    {语句}
for(变量;条件;表达式)    {语句}

3.支持while循环

while(表达式)    {语句}
do{语句}while(条件)

转载地址:http://zyhxa.baihongyu.com/

你可能感兴趣的文章
使用ArrayList时设置初始容量的重要性
查看>>
Java Web-----JSP与Servlet(一)
查看>>
Maven搭建SpringMVC+Mybatis项目详解
查看>>
关于量子理论:最初无意的简化,和一些人有意的强化和放大
查看>>
CentOS 6.9通过RPM安装EPEL源(http://dl.fedoraproject.org)
查看>>
“区块链”并没有什么特别之处
查看>>
没有功能需求设计文档?对不起,拒绝开发!
查看>>
4星|《先发影响力》:影响与反影响相关的有趣的心理学研究综述
查看>>
IE8调用window.open导出EXCEL文件题目
查看>>
python之 列表常用方法
查看>>
vue-cli脚手架的搭建
查看>>
在网页中加入百度搜索框实例代码
查看>>
在Flex中动态设置icon属性
查看>>
采集音频和摄像头视频并实时H264编码及AAC编码
查看>>
3星|《三联生活周刊》2017年39期:英国皇家助产士学会于2017年5月悄悄修改了政策,不再鼓励孕妇自然分娩了...
查看>>
高级Linux工程师常用软件清单
查看>>
堆排序算法
查看>>
folders.cgi占用系统大量资源
查看>>
路由器ospf动态路由配置
查看>>
zabbix监控安装与配置
查看>>