我想要实现的是,删除Src_Dir1和Src_Dir2中相同的文件名(filename + modfiedtimestamp)exisitng
因此,我首先尝试将所有文件名分别部署到tempa(Src_Dir1)和tempb(Src_Dir2)。
下面是源目录的屏幕快照。
存档内的文件就是这样,外面的文件也很少..
因此,最初,我想处理Archive(SRC_Dir1)内的文件,后来要处理Archive(SRC_Dir2)以外的文件,我想做的是使用while循环读取修改后的时间戳的每个文件名和字符串concat (mtime)并输入到tempc(例如,它应该像AirTimeActs_2018-12-03.csv + 2019-01-24 14:41:53.000000000 -0500 = AirTimeActs_2018-12-03.csv_2019-01-24 14 :41:53.000000000 -0500对于存档(SRC_Dir1)中的每个文件名,应将其生成为tempc文件。在这里,我被困在字符串concat变量部分中,以继续进行操作。帮助我提供代码,希望我能理解。
重要
((非常感谢,如果您帮助我扩展代码的扩展,我在这里没有提到,但现在仍要实现->必须实现相同的代码(我正在尝试为tempa做代码,我也想为tempb做它,并将其命名为tempd),然后在tempc和tempd之间进行文件数据比较),如果有的话相同的数据文件名,然后删除Src_Dir2中存在的文件,如果没有相同的数据文件名,则什么也不做。)
#!/bin/bash
Src_Dir1=path/Airtime_Activation/Archive
Src_Dir2=path/Airtime_Activation/
find "$Src_Dir1" -maxdepth 1 -name "*.xlsx" -o -name "*.csv" | sed "s/.*\///" > -print>path/Airtime_Activation/temp_a
find "$Src_Dir2" -maxdepth 1 -name "*.xlsx" -o -name "*.csv" | sed "s/.*\///" > -print>path/Airtime_Activation/temp_b
echo 'phase1'
cat path/Airtime_Activation/temp_a | while read file;
do
echo 'phase1.5'
echo "$file"
echo 'phase2'
mtime=$(stat -c '%y' $file)
Full_name=${file}_${mtime}
echo "$Full_name" >> path/Airtime_Activation/temp_c
echo 'phase3'
done
#!/bin/bash
Src_Dir1=path/Airtime_Activation/Archive
Src_Dir2=path/Airtime_Activation/
find "$Src_Dir1" -maxdepth 1 -name "*.xlsx" -o -name "*.csv" | sed "s/.*\///" > -print>path/Airtime_Activation/temp_a
find "$Src_Dir2" -maxdepth 1 -name "*.xlsx" -o -name "*.csv" | sed "s/.*\///" > -print>path/Airtime_Activation/temp_b
echo 'phase1'
cat path/Airtime_Activation/temp_a | while read file;
do
echo 'phase1.5'
echo "$file"
echo 'phase2'
mtime=$(stat -c '%y' $file)
Full_name=${file}_${mtime}
echo "$Full_name" >> path/Airtime_Activation/temp_c
echo 'phase3'
done
cat /path/Airtime_Activation/temp_b | while read file
#while IFS="" read -r -d $'\0' file;
do
#echo "$file"
echo 'phase2'
mtime=$(stat -c '%y' $Src_Dir2/$file)
Full_name=${file}_${mtime}
echo "$Full_name" >> path/temp_d
echo 'phase3'
done
#file compare and delete old files from outisde archive
grep -Ff temp_d temp_c > path/Airtime_Activation/temp_e
cat path/Airtime_Activation/temp_e | while read file
#while IFS="" read -r -d $'\0' file;
do
#echo "$file"
echo 'phase2'
echo "${file%_*}"
rm $Src_Dir2/${file%_*}
echo 'phase3'
done