AWK文本处理工具(Linux)
AWK文本处理工具(Linux)
PS:刚开始实习,就给了个处理百万级别数据的任务,以前学过SHELL的一些东西sed/awk之类的处理,但是也没有具体的应用,只是在10几行10几列的小数据操作过,所以要从新学习下,并应用在实际工作中。你可以用excel编辑还好,保存就卡死你!
什么是AWK
awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能,因为awk是三个人名的缩写,他们是:Aho、(Peter)Weinberg和(Brain)Kernighan。正是这三个人创造了awk---一个优秀的样式扫描与处理工具。
AWK使用方法
awk语言最基本的功能是在文件或字符串中基于指定的规则浏览和抽取信息。
- 命令行方式
- 将所有的awk命令插入一个文件,并利用chmod使awk文件成为执行 -f scripts.awk
- 将所有的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.awk
BEGIN {FS=","}
{
print $
}
END {print "FINISH"}
其中,FS与命令行的-F是同样的,用来设定分隔符,在处理SCV文件时候需要把“,”作为分隔符
AWK内置函数
awk之所以成为一种优秀的程序设计语言的原因之一是它吸收了某些优秀的程序设计语言语言的许多优点。这些优点之一就是内置函数的使用,awk定义并支持了一系列的内置函数,由于这些函数的使用,使得awk提供的功能更为完善和强大。
内置字符串函数:
gsub(r,s) 在整个$0中用s替代r
awk 'gsub(/name/,"xingming") {print $0}' temp
gsub(r,s,t) 在整个t中用s替代r
index(s,t) 返回s中字符串t的第一位置,失败返回0
awk 'BEGIN {print index("Sunny","ny")}' temp 返回4
length(s) 返回s的长度
match(s,r) 测试s是否包含匹配r的字符串,失败返回0 也可以使用~/xxx/
awk '$1=="J.Lulu" {print match($1,"u")}' temp 返回4
split(s,a,fs) 在fs上将s分成序列a
awk 'BEGIN {print split("12#345#6789",myarray,"#")"'
返回3,同时myarray[]="", myarray[]="", myarray[]=""
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(条件)
AWK文本处理工具(Linux)的更多相关文章
- Linux - awk 文本处理工具一
AWK AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一:awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命 ...
- Linux 之 awk文本分析工具
AWK是一种处理文本文件的语言,是一个强大的文本分析工具.Linux环境中自带. awk调用方法 命令行 awk [-F field-separator] 'commands' input-file( ...
- awk 文本处理工具
awk: 强大的文本处理工具,擅长对日志文件进行分析: 不仅用于Linux,也是任何环境中现在的功能最强大的数据处理引擎: 语法说明: awk '{pattern + action}' {filena ...
- Linux - awk 文本处理工具六 - 日志关键字筛选
查看多少行 ? awk '{print NR}' access.log |tail -n1 日期时间筛选检测 awk '/Dec 10/ {print $0}' /opt/mongod/log/mon ...
- Linux - awk 文本处理工具五
awk 线上处理常用模式 awk 处理复杂日志 6.19: DHB_014_号百总机服务业务日报:广州 到达数异常! DHB_023_号百漏话提醒日报:珠海 到达数异常! 6.20: DHB_014_ ...
- Linux - awk 文本处理工具四
awk 常用示例 获取本机 IP 方式 /sbin/ifconfig |awk -v RS="Bcast:" '{print $NF}'|awk -F: '/addr/{print ...
- Linux - awk 文本处理工具三
AWK 文件打印匹配 格式示例 awk '/Tom/' file # 打印匹配到得行 awk '/^Tom/{print $1}' # 匹配Tom开头的行 打印第一个字段 awk '$1 !~ /ly ...
- awk文本分析工具
Usage:awk [option] 'program' file ... awk [option] -f progfile file ... [optin]: -F fs 指定输入分隔符,fs可是字 ...
- AWK文本分析工具-常用场景(持续更新中)
AWK help document:http://www.gnu.org/software/gawk/manual/gawk.html 问题 awk命令 备注 对请求IP统计分组排序? 显示列 ...
随机推荐
- tomcat7.0 处理问题
修改tomcat的用户密码 打开tomcat的conf/tomcat-users.xml 将<user username="admin" password="123 ...
- 8.10 CSS知识点3
7.属性选择符 选择符 版本 描述 E[att] CSS2 选择具有att属性的E元素 E[att="val"] CSS2 选择具有att属性值等于val的E元素 E[att~=& ...
- CSS 概念 Block Inline Containing block
Block 元素 包括 "block-level box," "block container box," and "block box" ...
- C/C++ 活动预处理器
错误 1 fatal error C1083: 无法打开包括文件:“iec/i.h”: No such file or directory #ifdef SUPPROT_IEC61850 #inclu ...
- Allegro16.3约束设置 (转载)
原文地址:http://blog.chinaunix.net/uid-21198646-id-3212383.html 差分对的约束设置 第一步,差分对的设置 差分对的设置有很多方法,下面介绍两种最常 ...
- for 循环
#include <iostream> int main(){ ; ; val <= ; ++val) { sum += val; } std::cout << &quo ...
- 设置input 内容居中显示 .
text-align:center 水平居中显示 <style type="text/css"> input.text{text-align:center;paddi ...
- Correspondence / ˏkɔris'pɔndәns / dictionary10-800.doc
I have taken courses in office administration, typing,reports and correspondence writing. Correspond ...
- LoadRunner录制不弹出IE浏览器,event=0
系统环境:win7,安装了IE.360.firefox.搜狗高速浏览器: 起初刚装完loadrunner11的时候,选了IE进行录制,就是不能打开IE,算了,那就用loadrunner默认的设置,居然 ...
- Java中的转义字符
1.转义字符 1.八进制转义序列:\ + 1到3位5数字:范围'\000'~'\377' \0:空字符 2.Unicode转义字符:\u + 四个十六进制数字:0~65535 \u ...