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 に答える