У меня есть ниже 3 файла в исходном местоположении $ {PDR}
PHONE_ABC.txt
PHONE_EFG.txt
PHONE_XYZ.txt
Мне нужно скопировать одни и те же файлы в 3 разных местах и добавить к ним время и текст:
Target Location 1 ${LCT1}
Target Location 2 ${LCT2}
Target Location 3 ${LCT3}
Файлы в местоположении 1 должны быть такими, как показано ниже:
PHONE_ABC_LCT1_20180914.txt
PHONE_EFG_LCT1_20180914.txt
PHONE_XYZ_LCT1_20180914.txt
Файлы в местоположении 2 должны быть такими, как показано ниже:
PHONE_ABC_LCT2_20180914.txt
PHONE_EFG_LCT2_20180914.txt
PHONE_XYZ_LCT2_20180914.txt
Файлы в местоположении 3 должны быть такими, как показано ниже:
PHONE_ABC_LCT3_20180914.txt
PHONE_EFG_LCT3_20180914.txt
PHONE_XYZ_LCT3_20180914.txt
Используемый код
#!/usr/bin/ksh
cp ${PDR}/PHONE_*.txt ${LCT1}/
cp ${PDR}/PHONE_*.txt ${LCT2}/
cp ${PDR}/PHONE_*.txt ${LCT3}/
# define list of files
LCT1=${LCT1}/PHONE_*.txt
LCT2=${LCT2}/PHONE_*.txt
LCT3=${LCT3}/PHONE_*.txt
# grab time
dtstamp=`date +%Y%m%d`
# for LCT1
for file in ${LCT1}
do
if [ ! -s ${file} ]
then
continue
fi
filebase=${file%.csv}
mv ${file} ${filebase}_LCT1_${dtstamp}.txt
done
# for LCT2
for file in ${LCT2}
do
if [ ! -s ${file} ]
then
continue
fi
filebase=${file%.csv}
mv ${file} ${filebase}_LCT2_${dtstamp}.txt
done
# for LCT3
for file in ${LCT3}
do
if [ ! -s ${file} ]
then
continue
fi
filebase=${file%.csv}
mv ${file} ${filebase}_LCT3_${dtstamp}.txt
done
Это дает мне то, что мне нужно.Но почему-то я считаю, что этот код можно сделать более эффективным и надежным, что я не могу понять.Также на 2-й день он продолжает добавлять метку времени к файлам в целевом местоположении, что, я не думаю, является хорошей вещью.
Любые указатели, чтобы этот код выглядел более эффективным и хорошим.