У меня есть файлы в каталоге, носящие дату, но явно не отмеченные датой.как вы через цикл определенный диапазон дат
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 разница не будет указывать на все идентификаторы записи в этом каталоге, так как, когда она перетекает на следующий месяц, простое числовое вычисление не применяется - это должен быть расчет на основе даты. , что я хочу сделать, это использовать 2 входных параметров оболочки
shell.sh recordID1 recordID2
и на их основе будет найти все записи и хранить их какое-то место и цикл по каждой записи в качестве входного сигнала, как этот
find <dir> -iname recordID* ...<some awk and sed here> |
while read recordID ;
do <stuff >
done
В любом случае это может быть достигнуто esp в двух контекстах: Сначала часть вычисления даты, а другая - для хранения этих идентификаторов записи, чтобы я мог их перебирать. Возможно, эхо их в файл tmp - это то, что происходит с места в карьер.
Для части расчета даты - я пробовал это, и он работает. Но не уверен, что если он будет колебаться некоторое время/ситуации
echo $((($(date -u -d 2010-04-29 +%s) - $(date -u -d 2010-03-28 +%s))/86400))
Так дали recordID1 в 20100328 У меня есть 32 дней RecordId, чтобы искать в этом каталоге. Вы должны указать даты на 32 дня с recordID1 и сохранить их в определенном месте. Как лучше всего это сделать.
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' должен забрать каждую часть.001 и part002 файл для 20130930 и 201310301. Изолируйте recordID - yyyymmdd из этих и имен файлов. Для этого каталога - дайте мне все файлы, соответствующие этому диапазону и их идентификатор записи (повторите эти имена) снова TY – user1874594