从shell中向awk传递变量实例
浏览:4181次 出处信息
次实例参数传递方法:’”$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命令行里的“瑞士军刀” (阅读:11060)
- AWK 简明教程 (阅读:8793)
- awk命令,实现文件的合并与拆分 (阅读:6827)
- AWK介绍 (阅读:6199)
- 更快的IP库查找方法以及AWK中的二分查找 (阅读:5997)
- awk 实例之二维数组 (阅读:5566)
- Axure之变量的使用 (阅读:4699)
- 操作大文本,awk vs vim (阅读:4515)
- SED命令行脚本快速参考,AWK命令行脚本快速参考,perl命令行脚本快速参考 (阅读:4424)
- 深入PHP使用技巧之变量 (阅读:4283)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Linux常用命令,命令行技巧
后一篇:Linux 账号与身份管理 >>
文章信息
- 作者:懒人运维 来源: 懒人运维
- 标签: awk 变量
- 发布时间:2010-03-21 22:52:04
建议继续学习
近3天十大热文
-
[927] WordPress插件开发 -- 在插件使用 -
[133] 解决 nginx 反向代理网页首尾出现神秘字 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 整理了一份招PHP高级工程师的面试题 -
[50] 全站换域名时利用nginx和javascri -
[50] 海量小文件存储 -
[50] 用 Jquery 模拟 select -
[49] CloudSMS:免费匿名的云短信 -
[48] Innodb分表太多或者表分区太多,会导致内 -
[47] jQuery性能优化指南
