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

求shell 高手。。。!!!

    来源: 互联网  发布时间:2017-02-03

    本文导语:  新手能看懂shell 求高手帮忙写一下。。 有一个目录,下面有很多文件。文件名格式固定。如: D20120208.05_20120208.06_DAA D20120208.06_20120208.07_DAA D20120208.07_20120208.08_DAA D20120208.05_20120208.06_BOD D20120208.06_20120208.07_BOD D20120208.07_20120208.08...


新手能看懂shell 求高手帮忙写一下。。

有一个目录,下面有很多文件。文件名格式固定。如:
D20120208.05_20120208.06_DAA
D20120208.06_20120208.07_DAA
D20120208.07_20120208.08_DAA

D20120208.05_20120208.06_BOD
D20120208.06_20120208.07_BOD
D20120208.07_20120208.08_BOD 

文件里面有许多字段,每一种业务类型有不同的字段,比如说 DAA里面有name,age,sal。 BOD里面有name,age,sess。

现在传入一个文件名,和某些字段。比如说 D20120208.05_20120208.06_DAA,name,age。

就需要解析所有DAA类型的文件以及查询name,age字段,需要计算age字段。

解析每一个文件需要记录日志,该文件已经被解析过了。并且输出一个文件里面有name,age字段(文件名不变,存放

在另一目录)。

如果输入了 D20120208.05_20120208.06_DAA,name,age,07。

需要解析 07 点以前的文件,如果已经被解析过,就不需要解析了。输入参数的长度不会超过10个。

求高手挑战一下,帮帮小弟,刚刚学习shell。谢谢。

|
根据楼主的描述,
假设数据文件D20120208.05_20120208.06_DAA如下:

name age sex wage
liu 25 male 3456
zhang 27 female 4567

D20120208.08_20120208.09_DAA 如下

name age sex wage
ma 26 male 3856
sun 26 female 4667

脚本如下:

#!/bin/sh

parse()
{
echo $file |tee -a parsed
awk -v cols="$args" '
BEGIN {
}
NR==1 {
for (i=1;i 0)
field[i]=$i
}
}
{
for (i in field)
printf ("%s t", $i)
printf("n")
}' $file
}
args=$*
if echo $args | grep -q " *[0-9][0-9] *$"; then
file=${args%% *}
time=${args##* }
args=${args#* }
args=${args% *}
for file in $(ls); do
f2=$(echo $file|awk -F[._] '{print $2}')
f4=$(echo $file|awk -F[._] '{print $4}')

echo $f2 | grep -q "^[0-9][0-9]$" || continue
echo $f4 | grep -q "^[0-9][0-9]$" || continue
if [ $f2 -lt $time -a $f4 -lt $time ]; then
if ! grep -q "$file" parsed; then
parse |tee -a result
fi
fi
done
else
file=${args%% *}
args=${args#* }
if ! grep -q "$file" parsed; then
parse |tee -a result
fi
fi

执行效果如下:

# ./parse.sh D20120208.05_20120208.06_DAA name sex 10
D20120208.05_20120208.06_DAA
name  sex 
liu  male 
zhang  female 
D20120208.08_20120208.09_DAA
name  sex 
ma  male 
sun  female 

    
 
 

您可能感兴趣的文章:

  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • 高手指点一下吧,shell里老多出一个'
  • 懂unix shell、oracle的高手,救命啊!!!
  • 求教高手,关于shell命令
  • shell程序,高手看一下啦。谢谢
  • 请高手帮忙想个shell脚本
  • 高手帮帮忙,SHELL脚本编程~~~~~~~~~~~~~~~~~~
  • 请教高手,一个简单的shell脚本问题???
  • LINUX SHELL下的图形问题----高手请进!
  • shell高手进
  • 还是shell-----------高手帮忙。。。。。。。。
  • 请问各位高手,如何在c shell中从标准输入读参数然后赋给一个变量啊
  • 一个linux shell编程求素数问题 高手帮帮忙啊
  • shell 编程 从0到10求和 ,代码有错,请高手看看
  • [100分]如何在GTK下编写的程序中调用shell下的批处理程序[高手进]
  • 高分相求,有哪位高手能给我这个shell程序的源程序?
  • shell高手请进
  • 请教高手点简单的SHELL编程问题
  • linux终端下,输入suspend,如何回复shell?高手请来!
  • shell脚本高手请进
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 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正则表达式元字符集(基本集)
  • 请问“当前shell”和“子shell”的区别?
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • shell 编程 执行shell新建多个终端 并执行程序
  • 如何在一台机器上的shell中执行另外一台机器上的shell


  • 站内导航:


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

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

    浙ICP备11055608号-3