藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教將文件按規則打包(tar)的方法

請教各位老大,比如說,ls的輸出如下:

-rw-r--r--   1 oracle     dba         226385 Apr  6 12:59 sp_257_258_0002_20050328.lst
-rw-r--r--   1 oracle     dba         217712 Apr  6 12:59 sp_258_259_0100_20050328.lst
-rw-r--r--   1 oracle     dba         213661 Apr  6 12:59 sp_259_260_0200_20050328.lst
-rw-r--r--   1 oracle     dba         246377 Apr  6 12:49 sp_348_349_1900_20050331.lst
-rw-r--r--   1 oracle     dba         243480 Apr  6 12:49 sp_349_350_2000_20050331.lst
-rw-r--r--   1 oracle     dba         246239 Apr  6 12:49 sp_350_351_2100_20050331.lst
-rw-r--r--   1 oracle     dba         247652 Apr  6 12:49 sp_351_352_2200_20050331.lst
-rw-r--r--   1 oracle     dba         246034 Apr  6 12:49 sp_352_353_2300_20050331.lst
-rw-r--r--   1 oracle     dba           4837 Apr  6 13:01 sp_379_380_1000_20050401.lst
-rw-r--r--   1 oracle     dba           3746 Apr  6 13:01 sp_381_382_1034_20050401.lst
-rw-r--r--   1 oracle     dba           3746 Apr  6 13:01 sp_382_383_1100_20050401.lst
-rw-r--r--   1 oracle     dba           3746 Apr  6 13:01 sp_383_384_1200_20050401.lst
-rw-r--r--   1 oracle     dba           3746 Apr  6 13:01 sp_384_385_1300_20050401.lst
-rw-r--r--   1 oracle     dba           3746 Apr  6 13:01 sp_385_386_1400_20050401.lst
-rw-r--r--   1 oracle     dba           3746 Apr  6 13:01 sp_386_387_1500_20050401.lst

。。。


現在想寫個腳本,每天把前一天的sp_開頭的文件做成tar,不知道可是做到這裡就坐不下去了,請各位大師幫幫忙:

ls -l | awk '{print $9}'|sed -n '/20050401/p'
輸出如下:
sp_257_258_0002_20050328.lst            
sp_258_259_0100_20050328.lst            
sp_259_260_0200_20050328.lst            
sp_348_349_1900_20050331.lst            
sp_349_350_2000_20050331.lst            
sp_350_351_2100_20050331.lst            
sp_351_352_2200_20050331.lst            
sp_352_353_2300_20050331.lst            
sp_379_380_1000_20050401.lst            
sp_381_382_1034_20050401.lst            
sp_382_383_1100_20050401.lst            
sp_383_384_1200_20050401.lst            
sp_384_385_1300_20050401.lst            
sp_385_386_1400_20050401.lst            
sp_386_387_1500_20050401.lst            


請注意,不能使用find 按天查找的方法,因為有可能我按照字符串'20050328'做tar文件,而不是嚴格按照實際的日期。

請教將文件按規則打包(tar)的方法

要求好像比較少,不知道符合你的要求嗎 :mrgreen:
-->
[code][kennyyu@haha 20050406]$ tar -cvf sp_20050328.tar `ls|grep "20050328"`
sp_257_258_0002_20050328.lst
sp_257_258_0100_20050328.lst
sp_257_258_0190_20050328.lst[/code]

-->

請教將文件按規則打包(tar)的方法

多謝 精靈網 :D

不過,還有一個問題,如果我只想將「昨天」的sp_開頭的文件打包怎麼辦?(不是說昨天生成的文件,而是sp文件名中的日期是昨天的,比如今天是20050407,那麼我需要20050406)

多謝了。

請教將文件按規則打包(tar)的方法

up

請教將文件按規則打包(tar)的方法

你的是什麼系統?
在RH linux 9.0下可以用:
date -d "1 day ago" +"%Y%m%d"
來得到昨天的時間。



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com