从shell中向awk传递变量实例
浏览:3555次 出处信息
次实例参数传递方法:’”$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命令行里的“瑞士军刀” (阅读:9874)
- AWK 简明教程 (阅读:8009)
- awk命令,实现文件的合并与拆分 (阅读:6453)
- AWK介绍 (阅读:5362)
- 更快的IP库查找方法以及AWK中的二分查找 (阅读:5101)
- awk 实例之二维数组 (阅读:4929)
- Axure之变量的使用 (阅读:4161)
- 操作大文本,awk vs vim (阅读:3714)
- SED命令行脚本快速参考,AWK命令行脚本快速参考,perl命令行脚本快速参考 (阅读:3667)
- 深入PHP使用技巧之变量 (阅读:3464)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Linux常用命令,命令行技巧
后一篇:Linux 账号与身份管理 >>
文章信息
- 作者:懒人运维 来源: 懒人运维
- 标签: awk 变量
- 发布时间:2010-03-21 22:52:04
建议继续学习
近3天十大热文
- [16] Go Reflect 性能
- [15] 浏览器的工作原理:新式网络浏览器幕后揭秘
- [13] iOS可视化编程 Tips 之“无需代码设置
- [13] 界面设计速成
- [13] iOS下自己动手造无限循环图片轮播
- [12] iOS并发编程(Concurrency Pr
- [12] iTerm2 (Mac Terminal)
- [12] 最萌域名.cat背后的故事:加泰与西班牙政府
- [12] Spark性能优化——和shuffle搏斗
- [11] Android设计中的.9.png