Написал скрипт для пересчета времени. Читаю в цикле файл. Если строка начинается по шаблону дата/время - беру эту дату/время перевожу в юникс-время (секунды), добавляю нужную разницу в секундах, перевожу опять в формат дата/время и седом заменяю старое значение на новое. Но есть проблема. Если в тексте несколько одинаковых подстрок со временем, то замена пройдет не только в обрабатываемой в цикле подстроке, а везде, что в итоге влияет на результат... Как обработать только конкретную подстроку в цикле?
for myI in ./EX_FILE
do
co1=0
while read line
do
case $line in
????-??-?????:??:*)
line=`echo "$line" | awk '{print $1 " " $2}'`
date_line_f[$co1]=$line
line=`date --date="$line" +%s`
let line=$line+$date_dif
line=`date --date=@$line +"%F %H:%M:%S"`
date_line_s[$co1]=$line
sed -i "s#${date_line_f[$co1]}#${date_line_s[$co1]}#" ./$myI - эта строка явно не годиться!!! Чем заменить перезапись старых данных но новые? Что бы замена шла не по всему тексту сразу, а конкретно в обрабатываемой подстроке!
esac
let co1=$co1+1
done <./$myI
done