QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3345|回复: 8

用shell script解决工作问题实例

[复制链接]
发表于 2006-8-1 21:47:51 | 显示全部楼层 |阅读模式
:D
这是我第一次用shell script解决工作中的问题的体验,发来庆贺一下,问题是:整理一个记录客户文件的openoffice的sxc文件,共有230个客户,2500份文件,每个客户的文件数从几份到200份不等,每行记录有客户名称,文件名称,客户编号(从001,002一直往上加)等,现在想从这2500多行中列出现有的客户和对应的客户编号,一开始我是在openoffcie里老老实实的一个客户一个客户找,找了好长时间,才整理了50多个,后来实在没有耐心了,就想在下班后用linux的shell scrip试试,没想到很顺利,总共用了几分钟就搞定了。

#!/bin/bash
for i in 001    002     ... ... ...    229     230  (从001到230,在openoffice里面拖出后copy到这里)      
do
grep $i /home/xxx/list.csv |head -1>> /home/xxx/listlist
done
 楼主| 发表于 2006-8-1 21:51:40 | 显示全部楼层
不是2500份,是3500份,sript让我着着实实爽了一把。
回复

使用道具 举报

发表于 2006-8-2 08:44:03 | 显示全部楼层
汗,难道你手工输入了 001 ~ 230 这么多数字?
回复

使用道具 举报

发表于 2006-8-2 08:54:15 | 显示全部楼层
就是阿。。。你手工输入?
回复

使用道具 举报

 楼主| 发表于 2006-8-2 19:26:21 | 显示全部楼层
昨天急着解决问题,没有去好好查资料,只是一个个输的,好在不是很多,刚才又查了一下资料,改成下面的了,简单多了。

#!/bin/bash
for ((i=001; i <= 230 ; i++))
do
grep $i /home/xxx/speclist.csv |head -1>> /home/xxx/listlistnew
done
回复

使用道具 举报

发表于 2006-8-3 09:05:57 | 显示全部楼层
bash 可以   for (())吗?!
回复

使用道具 举报

 楼主| 发表于 2006-8-3 18:43:14 | 显示全部楼层
我上面的代码确实试验成功了。
回复

使用道具 举报

发表于 2006-8-4 20:28:39 | 显示全部楼层
能把每一行的功能以及作用介绍一下好吗?
对于shell很想学,但是觉得太枯燥,
平时用fortran,c
呵呵呵呵
回复

使用道具 举报

发表于 2009-7-27 12:23:58 | 显示全部楼层
使用seq也行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 00:22 , Processed in 0.087888 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表