计算文件名字符,然后将这些文件复制到另一个目录

Count filename characters, then copy those files to another directory

我需要编写一个 bash 脚本,将文件复制到 dir2,匹配文件名中的字符数和作为参数给出的给定 int 值剧本。我已经尝试做一些事情,但我根本无法复制文件。

read number

list=`for file in *; do echo  -n "$file" | wc -m; done`

for file in $list

do

if [ $file -eq $number ]

then

cp file dir2

fi

done

在您的代码中,list 是文件名长度列表,而不是文件名。所以 $file 只是一个数字。您还错过了 $file 上的前导 $

你不需要使用wc程序,你可以使用${#name}获取变量名的长度。我想你需要这样的东西:

while [[ $number != +([0-9]) ]]
do
    read -p "Enter number: " number
done

for file in *
do

    if (( ${#file} == $number ))
    then
        cp "$file" dir2
    fi

done