0606 第22章 linux gawk进阶
0606 第22章 linux gawk进阶
1. gawk的特点和高级之处是什么?
使用内建变量和自定义变量
2. FILEDWIDTHS,FS,RS,OFS,ORS是什么意思?gawk内置变量
FS设置$字段的分隔符,默认是空格。
OFS设置自定义的分隔符取代FS
RS可以按空格把好几行视作一行。
ORS设置自定义的分隔符取代RS。
FILEDWIDTHS用在中文上很可能会乱码,除非是3的倍数。
默认情况下,gawk将RS和ORS设为换行符。默认的RS值表明,输入数据流中的每行新文本就是一条新纪录。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zvvpIDRY-1654661032185)(https://oscimg.oschina.net/oscnet/up-3b62ad83a0ec75bd9983215ca62c046aad4.png)]
3. 更多的gawk变量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5UQdmCL5-1654661032187)(https://oscimg.oschina.net/oscnet/up-705fc7db250210145d338013bf89bc2d716.png)]
4. ubantu怎么没有gawk?怎么安装gawk?
apt-get install gawk
5. gawk怎么使用shell环境变量?
$ gawk ’
> BEGIN{
> print ENVIRON[“HOME”]
> print ENVIRON[“PATH”]
> }’
/home/rich
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
6. NF变量可以让你在不知道具体位置的情况下指定记录中的最后一个数据字段。
$ gawk ‘BEGIN{FS=":"; OFS=":"} {print 1,1,1,NF}’ /etc/passwd
rich:/bin/bash
testy:/bin/csh
mark:/bin/bash
dan:/bin/bash
mike:/bin/bash
test:/bin/bash
NF变量含有数据文件中最后一个数据字段的数字值。可以在它前面加个美元符将其用作字段变量
7. FNR和NF的区别
FNR 当前数据文件中的数据行数
NR 已处理的数据行数
8. awk如何在begin中使用自定义变量?
gawk -v n=3 -f script2 data1
必须要加-v参数
9. awk怎么遍历数组
$ gawk ‘BEGIN{
> var[“a”] = 1
> var[“g”] = 2
> var[“m”] = 3
> var[“u”] = 4
> for (test in var)
> {
> print “Index:”,test," - Value:",var[test]
> }
> }’
Index: u - Value: 4
Index: m - Value: 3
Index: a - Value: 1
Index: g - Value: 2
10. awk ~波浪线什么意思? awk #NF 什么意思?
$ gawk -F: ‘$1 ~ /rich/{print 1,1,1,NF}’ /etc/passwd
rich /bin/bash
波浪线~ 匹配操作符 matching operator 。 将正则匹配范围限制在$1 ,也可以取非!~
$NF与$1相对,代表最后一个字段。
11. awk 如何使用数学表达式
$ gawk -F, ‘$1 == “data11”{print $1}’ data1
-F,是表示分割符是逗号,
12. awk执行循环,在if中执行多条语句
$ gawk ‘{
> if ($1 > 20)
> {
> x = $1 * 2
> print x
> } else
> {
> x = $1 / 2
> print x
> }}’ data4
5
2.5
6.5
100
68
以下是上一个例子的单行格式版本。
$ gawk ‘{if ($1 > 20) print $1 * 2; else print $1 / 2}’ data4
13. awk使用while循环求平均数
$ cat data5
130 120 135
160 113 140
145 170 215
$ gawk ‘{
> total = 0
> i = 1
> while (i < 4)
> {
> total += $i
> i++
> }
> avg = total / 3
> print “Average:”,avg
> }’ data5
Average: 128.333
Average: 137.667
Average: 176.667
14. awk 使用printf打印格式, 类似C语言
$ gawk ‘{
> total = 0
> for (i = 1; i < 4; i++)
> {
> total += $i
> }
> avg = total / 3
> printf “Average: %5.1f\n”,avg
> }’ data5
Average: 128.3
Average: 137.7
Average: 176.7
15. gawk数学函数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-emrzjlcx-1654661032188)(https://oscimg.oschina.net/oscnet/up-c723fc9a500914039a5aa601610fe67337f.png)]
16. gawk 位运算
除了标准数学函数外,gawk还支持一些按位操作数据的函数。
and(v1, v2):执行值v1和v2的按位与运算。
compl(val):执行val的补运算。
lshift(val, count):将值val左移count位。
or(v1, v2):执行值v1和v2的按位或运算。
rshift(val, count):将值val右移count位。
xor(v1, v2):执行值v1和v2的按位异或运算。
位操作函数在处理数据中的二进制值时非常有用。
16. gawk 内建字符串处理函数
很强大,怪不得叫编程语言,有些字符串处理和java差不多。查找,替换,排序。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-beP5iA3K-1654661032189)(https://oscimg.oschina.net/oscnet/up-d760721e67fab52329504f9dd2c09b4c195.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2NknT3Ff-1654661032190)(https://oscimg.oschina.net/oscnet/up-f55e780e778c4092a5da85d430eeffebe53.png)]
17. gawk怎么产生一个整数随机数
x = int(10 * rand())
18. linux 列表去重
for team in $(gawk –F, ‘{print $2}’ scores.txt | uniq)
0606 第22章 linux gawk进阶相关推荐
- 2017年Linux基础进阶系列课-老男孩-专题视频课程
2017年Linux基础进阶系列课-13877人已学习 课程介绍 本套课程讲解的重要知识点如下: Linux文件属性体系精讲 .Linux正则表达式及grep命令深度讲解.三剑客sed ...
- cups源码下载 linux_【正点原子FPGA连载】第九章Linux显示设备的使用-领航者ZYNQ之linux开发指南...
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- linux i2c adapter 增加设备_「正点原子Linux连载」第六十二章Linux SPI驱动实验(一)...
1)实验平台:正点原子Linux开发板 2)摘自<正点原子I.MX6U嵌入式Linux驱动开发指南>关注官方微信号公众号,获取更多资料:正点原子 第六十二章Linux SPI驱动实验 上一 ...
- 【正点原子Linux连载】第三十五章 Linux内核顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- 【正点原子Linux连载】第七十一章 Linux 4G通信实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- linux操作系统 第11章 linux系统管理
第11章 Linux系统管理 ...
- linux教程第五版课后答案第六章,linux基础及应用第六章练习题
linux基础及应用第六章练习题 1. 下列哪个文件的内容为当前已挂载文件系统的列表? A. /etc/inittab B. /etc/profile C. /etc/mtab D. /etc/fst ...
- 韦东山 IMX6ULL和正点原子_正点原子Linux第五十七章Linux MISC驱动实验
1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第五十七章Linux MISC驱动实验 misc的意思是 ...
- 【正点原子MP157连载】第二十三章 Linux设备树-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
最新文章
- Gene co-expression analysis for functional classification and gene–disease predictions 基因共表达分析的功能分类
- dock run mysql v3_docker run mysql成功,但是3306端口不通?
- oracle 创建数据库 表空间 用户 授权和toad导入导出数据库
- mysql续型_mysql续集1
- 鸿蒙系统布局,华为的布局,开始了!第二款鸿蒙系统产品,即将亮相
- php网页制作 博客,php响应式的个人博客网站设计
- iostext添加点击事件_iOS实现一段文字中指定的某些文字点击有响应事件或者可以跳转(给字符串添加超链接)...
- FreeModbus离散量输入
- 动态规划算法分析与探究
- Javascript Number.MIN_VALUE
- 三菱gxworks3安装失败_三菱gx works3下载 Gx Works3(三菱PLC编程软件) v1.031h 中文安装版(附安装教程+序列号) 下载-脚本之家...
- echarts中国地图,省市标注代码
- 为什么大厂全在搞全链路压测?
- 使用SpotBugs/FindBugs进行代码检查
- JAVA 油站管理系统_加油站管理系统
- 从瓶盖挑战事件看企业如何做好新闻事件营销?
- Chef入门详解 Chef安装 Chef使用
- 如何查看win7计算机的显卡是多少位的,如何查看咱们win764位旗舰版电脑是单显卡还是双显卡...
- 团体程序设计天梯赛-练习集 (L2-001 - L2-020)
- 【图像处理】常用色彩空间