Это сработало для меня:
**#!/bin/bash
echo " enter source folder name" ;
read Code ;
echo " enter destination folder name"
read destination ;
echo " input folders to exclude" ;
read folders ;
input="$folders"
echo the folders entered are $input
for cols in $input ;
do
echo $cols >> log.txt
rsync -RravhP --exclude-from log.txt $Code $destination
log.txt**
$ perl -pe 's/\b(\d\d)(\d\d)(\d{4})-(\d\d)(\d\d)\+\d{4}\b/$3-$2-$1\x27T\x27$4:$5:00/g' ip.csv
Ni, Aika, Aika_l Un, Unen, Unen_kesto, Uniluokat_R, Uniluokat_k, Uniluokat_s, HRV_RMSSD_a, HRV_RMSSD_i, Kokonaisp, Palautumisen_k, Hermoston_t, Syke_ave_m, Syke_a, Syke_l, Hengitystiheys_ave_m, Hengitystiheys_a, Hengitystiheys_min_a, Liikeaktiivisuus_l, Liikeaktiivisuus_a, Paivamaara_l
"Masi", 2010-07-23'T'22:00:00, 2010-07-24'T'06:00:00 70, 7h40, 6h30, 1h40, 3h40, 1h10, 67.0, 43.0, 24.0, 430, 30, 70, 50, 40, 20, 10, 10, 150, 260, 24.10.2010
"Masi", 2010-07-23'T'22:00:00, 2010-07-24'T'06:00:00 70, 7h40, 6h30, 1h40, 3h40, 1h10, 67.0, 43.0, 24.0, 430, 30, 70, 50, 40, 20, 10, 10, 150, 260, 24.10.2010
\b
граница слова (\d\d)
фиксирует две последовательные цифры, (\d{4})
фиксирует четыре из них и так далее \x27
для одинарных кавычек. Если после этого могут быть несвязанные цифры, возможно, лучше использовать восьмеричное представление\047
ddMMyyyy-HHmm+0300
, это не повлияет на заголовок. Тем не менее, если необходимо, просто добавьте if $.>1
после команды замены Вероятно, команды paste+awk
, используемые для создания ввода, можно легко включить в эту команду, но потребуется добавить эту информацию в вопрос
Вот что бы я сделал:
#!/usr/bin/env perl
# https://stackoverflow.com/a/33995620/54964
use strict;
use warnings;
# https://stackoverflow.com/a/20007784/54964
# http://perldoc.perl.org/POSIX.html
use POSIX qw(strftime);
use DateTime;
use DateTime::Format::Strptime qw(strptime);
my $str = '23072017-2200+0300';
my $dtime = strptime( '%d%m%Y-%H%M%z', $str );
my $f = '%Y-%m-%d\'T\'%H:%M:%S';
my $t = strftime( $f, 0, $dtime->minute, $dtime->hour, $dtime->day, $dtime->month-1, $dtime->year-1900, -1, -1, $dtime->time_zone );
print "$t\n";
Вывод, как и ожидалось, в поле времени
2017-07-23'T'22:00:00