> list done; 我要检索src目录中的文件,对每一个文件进行分析....">

当前位置:  技术问答>linux和unix

shell脚本中使用awk的疑惑,请帮忙

    来源: 互联网  发布时间:2016-06-14

    本文导语:  #!/bin/sh for file_name in `ls src` do         echo ${file_name}         awk -F ";" '{if($4 == ?????) print}' ${file_name} >> list done; 我要检索src目录中的文件,对每一个文件进行分析,如果文件的第4个字段符合一定条件...

#!/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}"'


有不明白的地方可以问我。。

算了,我写出来给你看吧。。。。。。。。

[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
[root@manifold ~]#



|
当然是用-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

|
其实不用你们讲的那么麻烦
直接把楼主说的????变成"'$1'"即可 即双引号单引号$1单引号双引号

我测试过 也这么用过


#!/bin/sh 

for file_name in `ls src` 
do 
        echo ${file_name} 
        awk -F ";" '{if($4 == "'$1'") print}' ${file_name} >> list 
done; 

|


|

说的没错,俺也是试验了一下,后来在网上找的这么一个帖子,说的比较全面:
http://www.lazysa.com/2009/06/490.html
所以俺把上面的改了改

#! /bin/sh

for f in "`ls src/*`"
do
        awk -F ":" '$4 == "'"$1"'" || $2 == "'"$2"'" { print }' ${f}


|

#! /bin/sh

for f in "`ls src/*`"
do
        awk -F ":" '$4 == "'"$1"'" || $2 == "'"$2"'" { print }' ${f}
done

执行结果如下:
./sh2awk China "SCO Open Server"
SCO:SCO Open Server:5.0.5:USA
Kingsoft:Power Dict:2006:China
Tongtech:TongLINK/Q:6.3:China
Liu Chuanzhi:Lenovo:CEO:China

|


顶这个了  awk 的外参标准格式 就是这个鸟

|
原来还有那么多种方法,学习了

    
 
 

您可能感兴趣的文章:

  • shell脚本如何调用另外一个shell脚本的函数?
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • shell 脚本中命令别名在脚本外无法使用
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • 想用shell脚本定时执行另一个脚本
  • 一个shell执行另一个带参数shell脚本????????????
  • 如何给shell脚本加密,脚本中有密码。最好是比较直接的,不要说让用 shc
  • Shell脚本调用Sql脚本并向其中传递变量
  • 请问,Shell中如何执行另外一个Shell脚本?
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  • nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
  • cd、zip等命令在shell提示符下能执行,在shell脚本中为什么不能执行呢?
  • shell脚本问题 关于父脚本和子脚本的问题
  • shell脚本错误输出
  • 请教shell脚本启动程序
  • 关于shell脚本的。
  • 关于arm linux下的别名配置脚本如何在进入用户时让shell执行的问题,如bashrc,profile,.bash_profile等脚本,寻求高手解答
  • 高分请教关于Shell脚本执行中断问题?
  • linux shell脚本
  • 一个shell语句中搞不懂的数字“2”,疑惑??
  • 求教shell学习中的一些疑惑
  • 关于一个shell命令的疑惑
  • 一个shell的小疑惑
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求教求教,shell问题...各位大哥,帮忙下
  • 那里有《shell编程》和关于curses编程的教程可以下载,请帮忙?
  • 20090102用shell代码转换为2009-01-02?帮忙了,谢谢
  • 帮忙写个shell???
  • 请高手帮忙想个shell脚本
  • 高手帮帮忙,SHELL脚本编程~~~~~~~~~~~~~~~~~~
  • 帮忙写个简单的shell
  • shell大侠帮帮忙啊~
  • 一个linux shell编程求素数问题 高手帮帮忙啊
  • 我要写定时启动一个命令的shell,请大家帮忙.
  • LINUX 和UNIX shell 编成指南(谁有啊?帮忙给我发一份啊)
  • 一个shell的小问题,大家帮忙看看啊!
  • 很简单的shell程序,大家帮忙啊(在线等,急!!)
  • shell问题,请大家帮忙。。
  • shell问题请大家帮忙
  • shell脚本 替换功能的问题,请帮忙
  • 求大家帮忙实现这个 shell
  • 一个shell的问题,请各位高手进来帮忙了,急,谢谢
  • 请大牛帮忙,shell脚本的问题
  • 还是shell-----------高手帮忙。。。。。。。。
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3