- 浏览: 777497 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html
http://www.gnu.org/software/gawk/manual/gawk.html
https://my.oschina.net/agiledev/blog/778891
1.-F指定域分隔符为':'
2.awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。
3.awk有许多内置变量用来设置环境信息,这些变量可以被改变,下面给出了最常用的一些变量。
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
4.awk中同时提供了print和printf两种打印输出的函数,printf与c中的类似
awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
awk -F ':' '{printf("filename:%10s,linenumber:%s,columns:%s,linecontent:%s\n",FILENAME,NR,NF,$0)}' /etc/passwd
5.自定义变量
awk '{count++;print $0;} END{print "count is ",count}' /etc/passwd
awk 'BEGIN{count=0} {count++;print $0;} END{print "count is ",count}' /etc/passwd
6.条件语句
同样与C类似,如统计当前文件夹下文件低于1000字节的文件的总字节数
ls -l |awk 'BEGIN {size=0;} { if($5<1000){size=size+$5;}} END{print "size is ", size}'
7.循环语句
awk中的循环语句同样借鉴于C语言,支持while、do/while、for、break、continue,这些关键字的语义和C语言中的语义完全相同
8.数组
因为awk中数组的下标可以是数字和字母,数组的下标通常被称为关键字(key)。值和关键字都存储在内部的一张针对key/value应用hash的表格里。由于hash不是顺序存储,因此在显示数组内容时会发现,它们并不是按照你预料的顺序显示出来的。数组和变量一样,都是在使用时自动创建的,awk也同样会自动判断其存储的是数字还是字符串。一般而言,awk中的数组用来从记录中收集信息,可以用于计算总和、统计单词以及跟踪模板被匹配的次数等等
awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd
9.运算符
运算符 描述
= += -= *= /= %= ^= **= 赋值
?: C条件表达式
|| 逻辑或
&& 逻辑与
~ ~! 匹配正则表达式和不匹配正则表达式
< <= > >= != == 关系运算符
空格 连接
+ - 加,减
* / & 乘,除与求余
+ - ! 一元加,减和逻辑非
^ *** 求幂
++ -- 增加或减少,作为前缀或后缀
$ 字段引用
in 数组成员
示例:
按;号过滤并打印所有行
cat xxx.txt | awk -F ';' '{for(i=1;i<=NF;++i)print $i}' > xxx.conf
http://www.gnu.org/software/gawk/manual/gawk.html
https://my.oschina.net/agiledev/blog/778891
1.-F指定域分隔符为':'
2.awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。
3.awk有许多内置变量用来设置环境信息,这些变量可以被改变,下面给出了最常用的一些变量。
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
4.awk中同时提供了print和printf两种打印输出的函数,printf与c中的类似
awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
awk -F ':' '{printf("filename:%10s,linenumber:%s,columns:%s,linecontent:%s\n",FILENAME,NR,NF,$0)}' /etc/passwd
5.自定义变量
awk '{count++;print $0;} END{print "count is ",count}' /etc/passwd
awk 'BEGIN{count=0} {count++;print $0;} END{print "count is ",count}' /etc/passwd
6.条件语句
同样与C类似,如统计当前文件夹下文件低于1000字节的文件的总字节数
ls -l |awk 'BEGIN {size=0;} { if($5<1000){size=size+$5;}} END{print "size is ", size}'
7.循环语句
awk中的循环语句同样借鉴于C语言,支持while、do/while、for、break、continue,这些关键字的语义和C语言中的语义完全相同
8.数组
因为awk中数组的下标可以是数字和字母,数组的下标通常被称为关键字(key)。值和关键字都存储在内部的一张针对key/value应用hash的表格里。由于hash不是顺序存储,因此在显示数组内容时会发现,它们并不是按照你预料的顺序显示出来的。数组和变量一样,都是在使用时自动创建的,awk也同样会自动判断其存储的是数字还是字符串。一般而言,awk中的数组用来从记录中收集信息,可以用于计算总和、统计单词以及跟踪模板被匹配的次数等等
awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd
9.运算符
运算符 描述
= += -= *= /= %= ^= **= 赋值
?: C条件表达式
|| 逻辑或
&& 逻辑与
~ ~! 匹配正则表达式和不匹配正则表达式
< <= > >= != == 关系运算符
空格 连接
+ - 加,减
* / & 乘,除与求余
+ - ! 一元加,减和逻辑非
^ *** 求幂
++ -- 增加或减少,作为前缀或后缀
$ 字段引用
in 数组成员
示例:
按;号过滤并打印所有行
cat xxx.txt | awk -F ';' '{for(i=1;i<=NF;++i)print $i}' > xxx.conf
发表评论
-
mac查看子目录大小
2024-05-10 17:59 478du -lh -d 1 -
mac查看进程监听端口
2022-05-19 09:48 832sudo lsof -nP -p 32239 | grep L ... -
mac nginx启动
2021-01-15 10:10 418brew services start nginx 1.1 ... -
mac找不到libhwloc
2020-11-18 13:50 534sudo cp /usr/local/lib/libhwloc ... -
查看网络读写
2020-08-11 13:37 285iotop nload -
mac boost
2019-09-03 09:09 317brew link --force boost@1.70 T ... -
awk$shell冲突
2019-07-22 14:53 1397Shell变量仅在双引号内(或根本没有引号)扩展,而不是单引号 ... -
macbook wifi不响应
2019-07-17 15:10 610sudo killall airportd 关闭蓝牙 -
shell split
2019-07-02 08:53 403tail -n 10000 debug.log | grep ... -
查看杀死进程系统日志
2019-06-12 10:11 688dmesg | egrep -i -B100 'killed ... -
根据进程查看线程
2019-06-05 11:44 501top -H -p pid -
shell快捷键
2019-05-23 15:58 4661.vim跳行首尾 mac:行首:1,行尾:2 linux: ... -
mac基本命令
2019-03-27 08:51 4091.查询监听端口:lsof -iTCP -sTCP:LISTE ... -
ssh免密码登录
2018-12-21 09:26 481scp /root/.ssh/id_rsa.pub root@ ... -
linux统计文件夹文件行数
2018-07-20 07:52 21241.统计demo目录下,js文件数量: find demo/ ... -
shell 目录递归查找关键字
2017-08-31 15:00 799grep aaa . -R -n -
shell 重定向
2017-08-30 11:24 471有时候,你可能不想显示脚本的输出,由于/dev/null文件不 ... -
shell case
2017-08-29 10:05 529case "$1" in -a) e ... -
shell while until
2017-08-28 09:48 375i=1 while((i<=3)) do ... -
shell for循环
2017-08-28 09:25 423for ((i=1;i<=3;i++)) do ...
相关推荐
《awk入门到精通》是一本专为对awk语言感兴趣的学习者设计的实用指南,旨在帮助他们理解和掌握awk的基本概念、语法以及如何有效运用这一强大的文本处理工具来解决各类问题。awk作为一种解释型语言,在文本处理领域中...
**sed和awk工具的介绍与应用** sed和awk是广泛应用于UNIX系统中的两个文本处理工具。sed是流编辑器(stream editor)的缩写,而awk则是一种编程语言,得名于其三位开发者:Alfred Aho、Peter J. Weinberger和Brian ...
"巧用AWK处理二进制数据文件" AWK是Unix、Linux中处理文本的好工具,可以对复杂的文本文件进行整理,提取其中的全部或者部分数据,按照需要的格式予以显示。但是,AWK的强大功能只针对纯文本文件,对于带有很多不可...
2. **运行awk脚本**:将生成的trace文件作为"ass109.awk" 的输入,执行命令如`awk -f ass109.awk trace_file_name.trc`,脚本会解析文件并输出关键信息。 3. **分析结果**:"ass109.awk" 可能会输出SQL语句、等待...
《Effective awk Programming, 4th Edition》是一本深入讲解awk编程技术的专业书籍,旨在帮助读者提升在文本处理和数据操作中的效率。awk是Unix/Linux环境中的一款强大工具,它专门用于处理结构化的文本数据,如日志...
AWK是一种非常实用的编程语言,它在文本处理和数据分析方面表现出色。它的特点是编写程序非常简单,即便是只有一两行的程序也能完成复杂的任务。AWK非常适合那些需要快速解决特定数据处理问题的场景。 ### AWK程序...
### awk详细用法小结 #### 一、awk简介与版本 awk是一种强大的文本分析工具,主要用于Linux/Unix系统下的数据处理与报告生成。它支持正则表达式、模式匹配和复杂的文本处理功能,是系统管理员和程序员进行数据处理...
MOXA AWK-3121 配置方法及要点说明 MOXA AWK-3121 是一种工业级无线设备,具有 web 功能配置、IP 网络参数设置、工作模式选择、功率增强等特点。本文将详细介绍 MOXA AWK-3121 的配置方法及要点说明。 一、Web ...
ass.awk工具用在数据库hang住时分析收集到的systemstate所用,可以清晰明了的查看systemstate中的信息; 命令简单: $ awk -f ass1033.awk [trace_name_file] 在系统hung的时候,systemstate基本等同于hanganalyze...
【awk参考资料】深入理解awk awk是一种强大的文本分析工具,主要在Linux/Unix环境中使用,由Alfred Aho、Brian Kernighan和Peter Weinberger三位大师共同开发。它能够处理来自标准输入、文件或命令输出的数据,通过...
awk 手册中文版.pdf awk 手册中文版由 bones7456 整理,是一本 awk 学习指引。该手册旨在解决的问题是awk 适合解决哪些问题?awk 常见的解题模式为何?通过一些具代表性的范例及其题解,帮助读者快速掌握 awk 解题...
《SED与AWK 高清第三版》是一本专注于Linux系统中强大文本处理工具sed和awk的教程。在Linux环境中,sed和awk是不可或缺的工具,它们能够高效地处理大量文本数据,进行搜索、替换、格式化等操作,极大地提高了运维...
### AWK 详细使用文档知识点概述 #### 一、AWK简介 - **AWK**是一种专门用于文本处理和报告生成的脚本语言。它的名字来源于三位创造者的名字首字母:Alfred V. Aho、Brian W. Kernighan 和 Peter J. Weinberger。 ...
**awk命令详解** awk是一种强大的文本分析工具,广泛应用于Linux和Unix系统中,用于处理结构化数据,如CSV、TSV格式的文件。它通过模式匹配和动作来处理输入流中的每一行,允许用户定制复杂的文本处理逻辑。下面将...
### AWK实例教程知识点解析 #### 一、AWK简介及背景 - **AWK**是一种功能强大的文本处理工具,最初由贝尔实验室的Alfred Aho、Peter Weinberger和Brian Kernighan共同开发,因此得名AWK。尽管这个名字听起来有些...
### awk入门级教材知识点详解 #### 一、awk简介 **awk** 是一种强大的文本处理工具,主要用于在一组文件上查找符合特定模式的行或字段,并执行相应的操作。它简化了数据选择和转换的过程,使其变得更为直观和简单...
Sed和Awk是UNIX和Linux系统中极为重要的流编辑器和文本处理工具,它们能够通过简单的命令或脚本高效处理文本文件,实现复杂的文本转换和报告生成。接下来,我们将根据提供的文件内容详细地说明Sed和Awk的关键知识点...
在处理文本数据时,Sed和awk是两个非常强大的工具。它们广泛应用于Unix和类Unix系统中,比如Linux。Sed,即流编辑器,是一个非交互式的文本处理工具,它能够执行文本替换、插入、删除等操作,而awk则是一个强大的...