awk使用案例

1.模仿wc的行为,统计一个文本文件的文件的字符数、行数、单词数.

awk ‘{numOfChar+=length($0);numOfWord+=NF}END{print numOfChar" " numOfWord" "NR }‘ file

2.上面的例子中有个问题,统计的字符数中包含空格,那么不包含空格的字符数要怎么算?

awk ‘{for (i=1; i<=NF; i++) numOfChar+=length($i)}END{print numOfChar}‘ file

3.awk中如何引用外部变量

name="pola"
echo "" | awk ‘{print "awk awk awk" “‘$name‘”}‘

双引号里单引号里$var.

4.awk数值计算中,如何将一个字符串识别为一串数字?

0开头的字符串按8进制识别,0x开头的字符串按照16进制识别,除此之外按照十进制。这些都是理想的情况,对于其他的情况则按照最长前缀匹配,即有多少匹配多少。

echo "0x12" | awk ‘{printf("%d\n",strtonum($0));}‘

5. 点(.)开头的单词怎么整?

readelf一个.o文件会有.text段的内容出来,如果想找出包含".text"单词的行呢?注意,这个“单词”就是一个点开头,然后后面接了一个正规的单词,其实这并不是个单词!所以当我们使用grep "\b\.text\b"去筛选这样一行时,根本就筛不出来,为什么?\b是个元字符,也是个零宽断言,你可以认为它会匹配这样一个奇怪的位置:两个字符的中间!它就去匹配(数字、字母、下划线)与(空格,标点符号,换行符)中间的位置。现在好了,我们的.text,由于点的左面是个空格,所以空格与点之间并不能匹配上\b,所以使用\b就搜不出来一个单词喽!

6. 读某.o文件中代码段在该文件的偏移

readelf -S write.o | awk ‘/\s\.text/{sub(/\[.*\]/,"",$0); print $4}‘

【awk中模式的部分以及sub等子函数中,正则表达式放在/ /中】

时间: 2024-12-26 08:41:37

awk使用案例的相关文章

awk使用案例总结

Linux Awk使用案例总结(nginx日志统计,文件对比合并等) 知识点: 1)数组 数组是用来存储一系列值的变量,可通过索引来访问数组的值. Awk中数组称为关联数组,因为它的下标(索引)可以是数字也可以是字符串. 下标通常称为键,数组元素的键和值存储在Awk程序内部的一个表中,该表采用散列算法,因此数组元素是随机排序. 数组格式:array[index]=value 1.Nginx日志分析 日志格式:'$remote_addr - $remote_user [$time_local] "

三剑客老大awk相关案例

awk {}花括号里面是动作,外面是条件 取行 NR==(number record)若不输入数字,默认所有行2.取列---列与列之间想隔开,加",或者其他符号"显示oldboy.txt的第4行的第1列 第2列和第4列 awk默认空格是分隔符号,所以后面的第四列一起,一个字符号默认是一刀,除非加了+,将[]+变成整体案例 先指定分隔符号为空格和逗号-F"[ ,]",一个符号相当于一刀取出IP地址比较大小NF是最后一列查看磁盘使用率 既有数字和百分号识别不了 原文地址

awk详细案例分析

awk:报告生成器格式化后显示信息 语法:awk [options] 'script' file1 file2, ...awk [options] 'PARTTERN { action }' file1 file2, ...最常见的action:print,printf awk的基本特征:a.每一次取一行b.根据指定的分隔符(不指定是位空白字符)将该行切割位列,使用$0(整行),$1,$2,$3...(第一列,第二列,...)c.可以指定行号,列号,切割符,操作后分隔符案例:chkconfig

Linux Awk使用案例总结

知识点: 1)数组 数组是用来存储一系列值的变量,可通过索引来访问数组的值. Awk中数组称为关联数组,因为它的下标(索引)可以是数字也可以是字符串. 下标通常称为键,数组元素的键和值存储在Awk程序内部的一个表中,该表采用散列算法,因此数组元素是随机排序. 数组格式:array[index]=value 1.Nginx日志分析 日志格式:'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_

awk使用案例一例

需求: 对nginx的access.log日志分析,要求最近100次请求中状态值不是200的百分比. 日志格式如下: 192.168.123.6 - - [26/May/2015:23:44:21+0800] "GET /get_seller_info&format=json HTTP/1.1" 200 34679"-" "Dalvik/1.6.0 (Linux; U; Android 4.4.4; MX4 ProBuild/KTU84P)&quo

(转)Awk使用案例总结(运维必会)

以下知识点可能有不对之处,请参考最新Awk学习文章:http://lizhenliang.blog.51cto.com/7876557/1892112 原文:http://blog.51cto.com/lizhenliang/1764025 知识点: 1)数组 数组是用来存储一系列值的变量,可通过索引来访问数组的值. Awk中数组称为关联数组,因为它的下标(索引)可以是数字也可以是字符串. 下标通常称为键,数组元素的键和值存储在Awk程序内部的一个表中,该表采用散列算法,因此数组元素是随机排序.

awk 小结

awk 是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. 参数:-F fs               指定行中分隔数据字段分隔符-f file             指定读取程序的文件名-v var=value        定义awk程序中的一个变量及其默认值-mf N               指定要处理的数据文件中的最大字段数-

awk扩展应用

案例1:使用awk提取文本 案例2:awk处理条件 案例3:awk综合脚本应用 案例4:awk流程控制 案例5:awk扩展应用 1 案例1:使用awk提取文本1.1 问题 本案例要求使用awk工具完成下列过滤任务: 练习awk工具的基本用法 提取本机的网卡流量.根分区剩余容量.获取SSH远程失败的IP地址 格式化输出/etc/passwd文件中的用户名.UID.宿主目录信息 1.2 步骤 实现此案例需要按照如下步骤进行. 步骤一:awk文本过滤的基本用法 1)基本操作方法 格式:awk [选项]

SHELL用法九(awk练习)

1.SHELL编程Awk语句案例实战 Awk主要是用于对文本文件进行处理,通常是逐行处理,其语法参数格式为, AWK常用参数.变量.函数详解如下: awk 'pattern + {action}' file (1) AWK基本语法参数详解: 单引号''是为了和shell命令区分开; 大括号{ }表示一个命令分组; pattern是一个过滤器,表示匹配pattern条件的行才进行Action处理; action是处理动作,常见动作为Print; 使用#作为注释,pattern和action可以只有