LDD3 中 awk 语句的解释
来源:互联网 发布:制作拜年视频软件 编辑:程序博客网 时间:2024/04/30 12:33
在ldd3的一个创建节点的shell脚本中,用到了awk文本处理工具,在这里做一下解释。
原句:major=$(awk "\\$2==\"$module\" {print \\$1}"/proc/devices)
Module变量在脚本中定义为 scull.
/proc/devices是awk要处理的输入文件。
$2,$1,分别代表输入文件中的每条记录的第二个域和第一个域,域之间的分隔符默认是空格。
式中的那几个斜杠是什么意思?
在awk中,\是转义字符,就是让其后面的元字符显示本意(而不是shell赋予它们的意义)。这样,\\$2就变成了\$2,\",就是"。
为什么是\$2?
在shell中,$后面跟变量,如果直接是$2,就代表调用shell脚本时传入的第二个参数,而不是上面我们谈到的含义,这就是要加 \ 的原因,它要求$2原封不动传给awk,不然就被shell替换为输入参数了。
这句话的意思是从输入文件/proc/devices检查记录,若第二个域是scull,则打印记录的第一个域,也就是设备的主设备号,并将这个值赋给了major。
awk的执行动作的部分是放在单引号内的,但是上面的语句是将动作放在双引号内,什么原因?
这是因为命令已经传给awk了,引号已经没了。 shell里面这个引号是为了阻止print{}里的内容作为shell的命令块处理
0 0
- LDD3 中 awk 语句的解释
- awk中pattern、action和{}的解释
- ldd3 运行脚本awk
- LDD3中snull的解析
- awk的流程控制语句
- awk系列:在awk中如何使用流程控制语句
- awk系列:在awk中如何使用流程控制语句
- 查询语句的解释
- 一个PHP中常用email校验语句的解释
- 关于U-Boot中makefile关键语句的解释
- LDD3中Makefile浅析
- awk之if语句的使用
- 对ldd3 中jiq程序的一点笔记
- LDD3中helloworld的问题(已解决)
- Linux设备驱动程序(LDD3)中snull的编译问题
- Linux设备驱动程序(LDD3)中snull的编译问题
- sql 语句的一些解释
- IE 条件解释的语句
- 第十四周 项目三--多科成绩单(3.3)
- Shell脚本之awk
- 冒泡算法的时间复杂度问题
- effective c++条款10-12(operator=(重载返回类型、自我赋值和深层复制))整理
- 关于ftp用户连接时出现500 OOPS问题
- LDD3 中 awk 语句的解释
- <Java>Java数组的深拷贝与浅拷贝
- 软件工程3——第四章 迭代一总结及感想
- Spark - 大数据Big Data处理框架
- 基于pythonSimpleHTTPServer的d3js (bubble_cloud-gh-pages)
- MySQL图形工具 MySQL GUI Tools的安装使用方法
- ruby sinatra
- Shell脚本之sed
- ffmpeg转换和显示yuv,rgb等原始图像数据