如何将目录从一个位置复制到与模式匹配的另一个位置。
例如:
source = /media/src/
destination = /media/dest/
- 模式如下
/b/w{2}_/w{2}/b
。即所有目录,如aa_bb
、fg_sd
、re_ya
、AA_BB
、aa_Bx
等Ba_BB
。
答案1
答案2
请检查这是否是您想要的。它搜索格式为 xx_yy/ab_cd/&&_$$ (2char_2char) 的目录并将内容复制到新目录。
usage : ./script.sh
cat script.sh
#!/bin/bash
MYDIR="/media/src/"
NEWDIRPATH="/media/dest"
DIRS=`ls -l $MYDIR | grep "^d" | awk '{print $9}'`
for DIR in $DIRS
do
total_characters=`echo $DIR | wc -m`
if [ $total_characters -eq 6 ]; then
has_underscore=`echo "$DIR" | grep "_"`
if [ "$has_underscore" != "" ]; then
echo "${DIR}"
start_string_count=`echo $DIR | awk -F '_' '{print $1}' | wc -m`
end_string_count=`echo $DIR | awk -F '_' '{print $2}' | wc -m`
echo "start_string_count => $start_string_count ; end_string_count => $end_string_count"
if [ $start_string_count -eq 3 ] && [ $end_string_count -eq 3 ]; then
cp -r $DIR $NEWDIRPATH/
fi
fi
fi
done