从shell中向awk传递变量实例
浏览:3665次 出处信息
次实例参数传递方法:’”$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命令行里的“瑞士军刀” (阅读:10437)
- AWK 简明教程 (阅读:8255)
- awk命令,实现文件的合并与拆分 (阅读:6713)
- AWK介绍 (阅读:5581)
- 更快的IP库查找方法以及AWK中的二分查找 (阅读:5427)
- awk 实例之二维数组 (阅读:5041)
- Axure之变量的使用 (阅读:4247)
- 操作大文本,awk vs vim (阅读:3816)
- SED命令行脚本快速参考,AWK命令行脚本快速参考,perl命令行脚本快速参考 (阅读:3906)
- 深入PHP使用技巧之变量 (阅读:3688)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Linux常用命令,命令行技巧
后一篇:Linux 账号与身份管理 >>
文章信息
- 作者:懒人运维 来源: 懒人运维
- 标签: awk 变量
- 发布时间:2010-03-21 22:52:04
建议继续学习
近3天十大热文
-
[82] memory prefetch浅析
-
[53] 转载:cassandra读写性能原理分析
-
[51] 深入浅出cassandra 4 数据一致性问
-
[51] 基本排序算法的PHP实现
-
[46] 字符引用和空白字符
-
[42] Inline Form Labels
-
[41] 获取Dom元素的X/Y坐标
-
[41] MySQL半同步存在的问题
-
[40] javascript插入样式
-
[40] JS中如何判断字符串类型的数字