免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2568 | 回复: 16
打印 上一主题 下一主题

[文本处理] 如何将变量赋予到shell中 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-22 10:07 |只看该作者 |倒序浏览
本帖最后由 hanjian602 于 2013-01-22 16:17 编辑

1. 首先 目录下有3个tar 包 名字为 m0121.tar m1122.tar m0123.tar每个tar包都是每天备份同一个数据库产生的,
解压后的内容为:
bf/a3.unl
bf/a1.unl
bf/a2.unl
bf/a4.unl
2.现在需要顺序抽取 每个tar包中的bf/a3.unl
3.然后重命名为tar包的名字。如 a3.unl 在解压后变成a0121.unl

我现在可以手工给脚本赋予值,怎么才能自动赋予值(就是将目录下的文件名赋予到命令中,如m0121 m0122等)。2年的数据共计700对个包呀。。{:2_177:}

我的手工输入文件名的脚本如下

if ( test $# != 1)
then
echo "jy.sh 0121"
exit
fi
tar xvf m$1.tar bf/a3.unl
cp bf/a3.unl ./ls/a$1.unl

谢谢各位了,刚接触AIX

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
2 [报告]
发表于 2013-01-22 10:19 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2013-01-22 10:49 |只看该作者
回复 2# zooyo


  看到服务器上以前别人写的,就按照这个格式在写,环境变量什么的都是提前定义好的。我没学过编程,只能凑合写,写的不规范别介意。

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
4 [报告]
发表于 2013-01-22 11:51 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
5 [报告]
发表于 2013-01-22 11:54 |只看该作者
描述的问题。

论坛徽章:
0
6 [报告]
发表于 2013-01-22 12:08 |只看该作者
#if ( test $# != 1)
#then
#echo "jy.sh 0121"
#exit
#fi
for i in `ls m*.tar`
do
tar xvf ${i}.tar bf/a3.unl
cp bf/a3.unl ./ls/${i}.txt
done
代码没经过测试,不过我想你应该是不想一次执行一个tar包,而是想执行所有tar包吧?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
7 [报告]
发表于 2013-01-22 12:45 |只看该作者
回复 6# dWX56896


    ${i}.tar这个.tar是不是多余的?

论坛徽章:
0
8 [报告]
发表于 2013-01-22 14:00 |只看该作者
回复 7# Shell_HAT
对的 谢谢指正

   

论坛徽章:
0
9 [报告]
发表于 2013-01-22 15:02 |只看该作者
dWX56896 发表于 2013-01-22 12:08
#if ( test $# != 1)
#then
#echo "jy.sh 0121"


需要每执行一次解压指定文件就需要重新命名一下解压下的文件。700个包需要顺序执行。

论坛徽章:
0
10 [报告]
发表于 2013-01-22 15:54 |只看该作者
回复 9# hanjian602


    重命名就把cp命令换成mv

700包顺序执行就ls m*.tar|sort
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP