我有一堆以.EHZ
结尾的文件,我正在尝试为每个文件创建一个文件夹,然后将它们移动到相应的文件夹中。另外,这些文件在我想要删除的名称上附加了Z
。因此,理想情况下,我将拥有例如这些文件
AAAAZBBBBZ.EHZ
CCCCZDDDDZ.EHZ
EEEEZFFFFZ.EHZ
转到文件夹
AAAABBBB
CCCCDDDD
EEEEFFFF
到目前为止我写的是
dir0=pwd
for file in `ls *.EHZ`
do
name=echo $file | head 10
mkdir -p $name
mv "$file" "$name"
done
P.S。我在stackoverflow中找到了许多针对此问题的答案,但在Shell上却找不到,所以我想问一下。
答案 0 :(得分:2)
能否请您尝试以下。我在代码中使用了cp
命令来保证安全,您可以将其删除并放在其中,以mv
的形式将文件实际移至文件夹。
for file in *.EHZ
do
name="${file%.*}"
actual_directory_name="${name::-1}"
if [[ ! -d "$actual_directory_name" ]]
then
mkdir "$actual_directory_name"
fi
cp "$file" "$actual_directory_name"
if [[ -s "$actual_directory_name/$file" ]]
then
echo "$file is moved Successfully to directory name $actual_directory_name now.."
else
echo "Please check seems $file is NOT moved to directory $actual_directory_name."
fi
done