有两个文件夹,文件夹A包含一批日志文件,例如
Test10771_20181210141431.log
Test10771_20181210141431_141714370.jpg
Test2062_20181210135223.log
Test2118_20181210134852.log
还有另一个文件夹B,其中包含另一个日志文件列表
Test10771_20181110142431.log
Test10771_20181110142431_141714370.jpg
Test2062_20181010132223.log
Test2118_20181010132852.log
Test3667_20181210142612.log
Test8461_20181210134434.log
我想将文件从文件夹A复制到文件夹B,如果文件夹B中存在Test10771
,请删除文件夹B中的Test10771_20181110142431.log
和Test10771_20181210141431_141714370.jpg
,然后复制Test10771_20181210141431.log
在文件夹A到B中。
它应该以bash进行,任何人都可以帮助,谢谢。
答案 0 :(得分:0)
怎么样:
#!/bin/bash
folder_a="./FolderA"
folder_b="./FolderB"
while read -r line; do
rm -f -- "$folder_b"/${line}*
cp -p -- "$folder_a"/${line}* "$folder_b"
done < <(for i in "$folder_a"/*; do
if [ -f "$i" ]; then
filename="${i##*/}"
prefix="${filename%%_*}"
echo "$prefix"
fi
done | sort | uniq)
执行后:
$ ls -1 FolderA
Test10771_20181210141431.log
Test10771_20181210141431_141714370.jpg
Test2062_20181210135223.log
Test2118_20181210134852.log
$ls -1 FolderB
Test10771_20181210141431.log
Test10771_20181210141431_141714370.jpg
Test2062_20181210135223.log
Test2118_20181210134852.log
Test3667_20181210142612.log
Test8461_20181210134434.log