kolen
			
				написал 16 января 2013 года в 16:39 (2186 просмотров)
			
			
			Ведет себя
			неопределенно; открыл 2 темы в форуме, оставил 4 комментария на сайте.			
	
	Очень нужна ваша помощь. Никогда не писал скриптов в bash, а тут срочно понадобилось. Никак не могу решить такую задачку.
Есть файлы с данными, их нужно открыть при этом меняя дату. Годы и месяцы я знаю как поменять, а вот с днями возникла проблема.
пример с именами файлов
grss.gdas.19150101-19150105.dat
grss.gdas.19150106-19150110.dat
grss.gdas.19150111-19150115.dat
grss.gdas.19150116-19150120.dat
grss.gdas.19150121-19150125.dat
grss.gdas.19150126-19150130.dat
Мой скрипт
for year in {1915..1956}
do
for month in 01 02 03 04 05 06 07 08 09 10 11 12
do
fname1=’grss.gdas.’$year»$month»??-’$year»$month»??.dat'
echo $fname1
done
done
Последние комментарии
-   OlegL, 17 декабря 2023 года в 15:00            →
        
        
            Перекличка
            21 OlegL, 17 декабря 2023 года в 15:00            →
        
        
            Перекличка
            21
-   REDkiy, 8 июня 2023 года в 9:09            →
        
        
            Как «замокать» файл для юниттеста в Python?
            2 REDkiy, 8 июня 2023 года в 9:09            →
        
        
            Как «замокать» файл для юниттеста в Python?
            2
-   fhunter, 29 ноября 2022 года в 2:09            →
        
        
            Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
            6 fhunter, 29 ноября 2022 года в 2:09            →
        
        
            Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
            6
-   Иванн, 9 апреля 2022 года в 8:31            →
        
        
            Ассоциация РАСПО провела первое учредительное собрание
            1 Иванн, 9 апреля 2022 года в 8:31            →
        
        
            Ассоциация РАСПО провела первое учредительное собрание
            1
-   Kiri11.ADV1, 7 марта 2021 года в 12:01            →
        
        
            Логи catalina.out в TomCat 9 в формате JSON
            1 Kiri11.ADV1, 7 марта 2021 года в 12:01            →
        
        
            Логи catalina.out в TomCat 9 в формате JSON
            1
 DevOps as a Service from Palark
DevOps as a Service from Palark
	24/7 SRE & DevOps service to cover all your Kubernetes needs.


 
							
Если вам нужно перебрать все файлы и что-то с ними сделать, лучше сделать вот так:
for i in grss.gdas.*-*.dat;do year1=`echo $i|cut -c11-14` month1=`echo $i|cut -c15-16` day1=`echo $i|cut -c 17-18` year2=`echo $i|cut -c20-23` month2=`echo $i|cut -c24-25` day2=`echo $i|cut -c 26-27` echo grss.gdas.${year1}${month1}${day1}-${year2}${month2}${day2}.dat doneЕстественно шаблон для перебора в for можете указать точнее (grss.gdas.[0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9]-[0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9].dat ).
PS. Уточните задачу. Непонятно, что вы имели в виду под «меняя дату». Возможно это решается совсем по-другому.
Все файлы имеют одинаковое имя, в котором меняется только время.
Например, первый файл grss.gdas.19150101-19150105.dat
Последний файл grss.gdas.19560126-19150131.dat
Месяцы и годы понятно как менять, а вот дни….
я вам написал код, который переберёт все файлы и заполнит переменные значениями времени:
year1, month1, day1 — это год, месяц, день из первой части.
year2, month2, day2 — аналогично из второй.
Как из этого собрать имя файла — я тоже показал. Дальше уже ваши действия.
Спасибо, но у меня все равно работает не так как надо. Буду разбираться дальше.