3

我正在尝试编写一个脚本,其中我在一个目录中有多个文件,但我想为每个具有特定扩展名的文件创建一个目录(目录名称中没有文件扩展名)并将每个文件移动到他们自己的目录中,然后对各自目录中的每个文件执行某些操作。我对此真的很陌生,所以就我所知,它不起作用,所以任何帮助都将不胜感激!

for file in *;
     do
        if  [ $file=[$.sff]] ; then
          mkdir ${$file/.sff/""/}
          mv $file ${file/.sff/""/}/
            fi
        for $file in $file/
              do { ......
            }
done
4

2 回答 2

2

您不需要 if 语句或 case 语句。做就是了:

die() { echo "$*" >&2; exit 1; }
for file in *; do
  dir=${file%.*}
  test -d $dir || mkdir $dir  # or just mkdir -p $dir
  test -f $dir && die "$dir exists and is a file!"
  mv $file $dir
done
for dir in *; do ...; done  # Do something in each directory
于 2012-09-26T18:17:10.703 回答
0
for file in *.*
do
  dir=${file%.*}
  mkdir "$dir"
  newfile=$dir/$file
  mv "$file" "$newfile"
  ... do something with "$newfile"
done
于 2012-09-26T18:21:49.790 回答