从shell中向awk传递变量实例
浏览:4357次 出处信息
次实例参数传递方法:’”$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命令行里的“瑞士军刀” (阅读:11270)
- AWK 简明教程 (阅读:8985)
- awk命令,实现文件的合并与拆分 (阅读:6921)
- AWK介绍 (阅读:6414)
- 更快的IP库查找方法以及AWK中的二分查找 (阅读:6212)
- awk 实例之二维数组 (阅读:5757)
- Axure之变量的使用 (阅读:4889)
- 操作大文本,awk vs vim (阅读:4781)
- SED命令行脚本快速参考,AWK命令行脚本快速参考,perl命令行脚本快速参考 (阅读:4601)
- 深入PHP使用技巧之变量 (阅读:4493)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Linux常用命令,命令行技巧
后一篇:Linux 账号与身份管理 >>
文章信息
- 作者:懒人运维 来源: 懒人运维
- 标签: awk 变量
- 发布时间:2010-03-21 22:52:04
建议继续学习
近3天十大热文
-
[1193] WordPress插件开发 -- 在插件使用 -
[81] 解决 nginx 反向代理网页首尾出现神秘字 -
[43] web开发设计人员不可不用的在线web工具和 -
[35] Java开发岗位面试题归类汇总 -
[30] Rax 系列教程(长列表) -
[29] 手机产品设计方向 -
[29] 一句话crontab实现防ssh暴力破解 -
[27] 如何建立合适的索引? -
[27] 程序员疫苗:代码注入 -
[25] 我对学习oracle与成长的理解
