从shell中向awk传递变量实例
浏览:3618次 出处信息
次实例参数传递方法:’”$1″‘(单引号双引号变量双引号单引号)
- 需求:
#!/bin/sh for file_name in `ls src` do echo ${file_name} awk -F ";" '{if($4 == ?????) print}' ${file_name} >> list done;
我要检索src目录中的文件,对每一个文件进行分析,如果文件的第4个字段符合一定条件,比如说,第4个字段是”a123″,则将这些符合条件的记录保存 成另外一个文件;该条件,我想在整个shell脚本的$1参数地方体现。
如上脚本,我现在想在?????处引用该shell脚本的第一个 参数$1,请问,?????该怎么写?
- 解决办法1:调用’”${1}”‘参数
[root@manifold ~]# ls anaconda-ks.cfg Desktop install.log install.log.syslog test2.sh test.sh [root@manifold ~]# cat test.sh #!/bin/sh for file_name in `ls /root` do echo ${file_name} awk -F ";" '{if($4 == '"${1}"') print}' ${file_name} >> list done; [root@manifold ~]# cat test2.sh manifold;manifold2;manifold3;1234;end [root@manifold ~]# ls anaconda-ks.cfg Desktop install.log install.log.syslog test2.sh test.sh [root@manifold ~]# sh test.sh 1234 anaconda-ks.cfg Desktop awk: cmd. line:1: fatal: file `Desktop' is a directory install.log install.log.syslog test2.sh test.sh [root@manifold ~]# ls anaconda-ks.cfg Desktop install.log install.log.syslog list test2.sh test.sh [root@manifold ~]# cat list manifold;manifold2;manifold3;1234;end
- 解决办法2:使用Awk -v 参数
$ lf awkvar* src/ $ cat awkvar #! /bin/sh files=`ls src/*` for file_name in ${files} do awk -F ":" -v country=China '{ if($4 == country) print }' ${file_name} done $ ls src software.txt whoiswho.txt $ cat src/* Microsoft:Windows:XP:USA SCO:SCO Open Server:5.0.5:USA Kingsoft:Power Dict:2006:China Tongtech:TongLINK/Q:6.3:China Bill Gates:Micosft:CEO:USA Liu Chuanzhi:Lenovo:CEO:China $ ./awkvar Kingsoft:Power Dict:2006:China Tongtech:TongLINK/Q:6.3:China Liu Chuanzhi:Lenovo:CEO:China
- 实例扩展
#! /bin/sh for f in "`ls src/*`" do awk -F ":" '$4 == "'"$1"'" || $2 == "'"$2"'" { print }' ${f}
建议继续学习:
- Linux命令行里的“瑞士军刀” (阅读:10275)
- AWK 简明教程 (阅读:8187)
- awk命令,实现文件的合并与拆分 (阅读:6634)
- AWK介绍 (阅读:5512)
- 更快的IP库查找方法以及AWK中的二分查找 (阅读:5317)
- awk 实例之二维数组 (阅读:5001)
- Axure之变量的使用 (阅读:4206)
- 操作大文本,awk vs vim (阅读:3774)
- SED命令行脚本快速参考,AWK命令行脚本快速参考,perl命令行脚本快速参考 (阅读:3825)
- 深入PHP使用技巧之变量 (阅读:3617)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Linux常用命令,命令行技巧
后一篇:Linux 账号与身份管理 >>
文章信息
- 作者:懒人运维 来源: 懒人运维
- 标签: awk 变量
- 发布时间:2010-03-21 22:52:04
建议继续学习
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] android 开发入门
- [65] 如何拿下简短的域名
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则