我有一個目錄中的文件是基於日期但沒有明顯的日期標記。你如何通過循環某個日期範圍
File_yyyymmdd_record.log
這些都躺在一個目錄幾年的時間價值。 現在,如果這些都是簡單的數字都是我需要做的是得到的差異,incremenet反推值
var=substring(File_yyyymmdd_record.log) /* get the yyyymmdd part */
var2=substring(File2_yyyymmdd_record.log) /* get the yyyymmdd part */
delta=var2-var1
set i=delta and loop through to get the values for all these recordID's (record ID is the yyyymmdd part)
的問題是,如果我在目錄中有2個不同的月份,也年前說的20131210和20140110 不同之處在於它不會在該目錄中記錄所有recordID,因爲當它溢出到下個月時,純數字計算不適用 - 它應該是基於日期的計算。 我想要做的是使用2輸入參數外殼
shell.sh recordID1 recordID2
,並根據這些就可以找到所有記錄,並通過每個記錄一些地方和循環並將其作爲這樣
find <dir> -iname recordID* ...<some awk and sed here> |
while read recordID ;
do <stuff >
done
輸入
無論如何,這可以在2個上下文中實現 - 首先是日期計算部分,另一個是存儲這些recordID,以便我可以循環訪問它們。也許回聲他們到一個tmp文件是什麼來自蝙蝠。
對於日期計算部分 - 我試過這個,它的工作原理。但不知道這是否會動搖一些時間/情況
echo $((($(date -u -d 2010-04-29 +%s) - $(date -u -d 2010-03-28 +%s))/86400))
因此,考慮recordID1爲20100328我有32天的recordId的尋找在該目錄中。 您必須從記錄ID1中提前32天,並將它們存儲在某個位置。 如何做到最好。
e.g.here是例如目錄和內容'/ testdir內容:datalog.20131030.part.001 datalog20131030.part.002 datalog20120910.part.001 datalog20120910.part.002 datalog20130930.part.001 datalog20130930.part.002'''shell.ksh 20130930 201310301' should爲20130930和201310301系列提取每個part.001和part002文件。隔離recordID - 這些和文件名稱的yyyymmdd。對於這個目錄,給我所有符合該範圍的文件和他們的記錄ID(回顯這些名字)TY – user1874594