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

时间:2018-04-27 21:22:55

标签: bash copy character filenames filesize

我需要编写一个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

1 个答案:

答案 0 :(得分:1)

在您的代码中,$是文件名长度列表,而不是文件名。所以$ 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 获取变量名称的长度。我想你需要这样的东西:

sed