4

file.jpgを1つのコマンドで100回コピーして、file001.jpg、file002.jpg、...、file100.jpgという名前の100個のファイルを取得するための正しい構文が必要です。私はこれを使用していますが、ヒントはありません

#!/bin/bash

for x in `seq 1 100`; do

    if [[ x -lt 10 ]]; then cp file.jpg file-00$x.jpg;

    elif [[ x -lt 100 ]]; then cp file.jpg file-0$x.jpg;

    else cp file.jpg file-$x.jpg;

    fi

done
4

2 に答える 2

19

bashブレース拡張を使用する

for n in {001..100}; do
    cp file.jpg file-$n.jpg
done
于 2012-10-06T13:04:25.747 に答える
3

2つの条件では、 onifが欠落しているため、数値ではなく文字列を比較することになります。$$xx

しかし、Basile Starynkevitchが指摘しているように、printfユーティリティはおそらくここに行くためのはるかに優れた方法$(printf "file-%03d.jpg" $x)です。つまり、1行で正しいフォーマットの文字列を取得します。

于 2012-10-06T06:28:22.300 に答える