私はこの質問がされたことを知っていますが、私は複数の解決策を見つけることができず、それは私にとってはうまくいきません。基本的に、私は次のようなファイルリストを取得するbashスクリプトを探しています。
image1.jpg
image2.jpg
image3.jpg
次に、それぞれのコピーを作成しますが、順番に逆方向に番号を付けます。したがって、シーケンスには次の3つの新しいファイルが作成されます。
image4.jpg
image5.jpg
image6.jpg
それでも、image4.jpgはimage3.jpgの手付かずのコピーであり、image5.jpgはimage2.jpgの手付かずのコピーであるというようになります。私はすでにこのスタックオーバーフローの質問で概説されている解決策を試しましたが、運がありませんでした。私は確かにbashスクリプトのパスをそれほど遠くはありません。最初にリストされた回答のコードのチャンクを取得してスクリプトを作成すると、常に「2:構文エラー:」(「予期しない」が何度も繰り返されます。構文を(少しだけ変更しようとしましたが、成功しませんでした。したがって、私が何か間違ったことをしているのか、より良いスクリプトがあります。
以前にこれを投稿しなかったことをお詫びしますが、私が使用しているコードは次のとおりです。
image=( image*.jpg )
MAX=${#image[*]}
for i in ${image[*]}
do
num=${i:5:3} # grab the digits
compliment=$(printf '%03d' $(echo $MAX-$num | bc))
ln $i copy_of_image$compliment.jpg
done
そして、このコードを取得してnanoを含むファイルに貼り付け、最初の行として!#/ bin / bashを追加してから、chmod +x script
を介してbashで実行しsh script
ます。もちろん、私のテスト実行では、適切にimage1.jpgというタイトルのファイルを使用していますが、このスクリプトを、必ずしもimage(integer).jpgというタイトルではないjpegのディレクトリに適用する方法についても考えていました。構造を維持しながら、これらのほとんどは1つの単語、数字、.jpgの順であり、使用するたびにスクリプトを書き直す必要がないのは便利です。