#!/bin/sh # copy MAXCOUNT files from each directory MAXCOUNT=6500 for category in *.corpus; do echo item: $category dir=corpus/$category newdir=data/thucnews/$category if [ -d $newdir ]; then rm -rf $newdir mkdir $newdir fi COUNTER=1 for i in * .dir; do cp $dir/$i $newdir if [ $COUNTER -ge $MAXCOUNT ] then echo finished break fi let COUNTER=COUNTER+1 done done
时间: 2024-03-05 21:51:31 浏览: 82
KNN.zip_人工智能/神经网络/深度学习_Visual_C++_
这是一个 Shell 脚本文件,用于从每个目录中复制一定数量的文件到另一个目录中。但是,在第 11 行中,`* .dir` 中间有一个空格,这会导致语法错误。请将其改为 `*.dir`。修改后的代码如下:
```
#!/bin/sh
# copy MAXCOUNT files from each directory
MAXCOUNT=6500
for category in *.corpus; do
echo item: $category
dir=corpus/$category
newdir=data/thucnews/$category
if [ -d $newdir ]; then
rm -rf $newdir
mkdir $newdir
fi
COUNTER=1
for i in *.dir; do
cp $dir/$i $newdir
if [ $COUNTER -ge $MAXCOUNT ]
then
echo finished
break
fi
let COUNTER=COUNTER+1
done
done
```
请注意,如果 `$dir` 中的文件名中包含空格或其他特殊字符,可能会导致其他错误。在这种情况下,最好使用双引号将变量括起来,例如 `cp "$dir/$i" "$newdir"`。
阅读全文