印刷したい写真がたくさんありますが、正しく印刷するには、他のすべての写真を水平に反転する必要があります。これで、画像はすべてpngファイルになり、、というラベルが付けられ"Foo 001.png"ます"Foo 002.png"。文字列の数字のある部分を見て、整数に変換し、n%2==0偶数かどうかを確認し、偶数かどうかを反転するだけでよいと考えています。
bashを使用して文字列から整数に変換する便利な方法があるかどうか、または画像を反転するために何を使用するかはわかりません。
印刷したい写真がたくさんありますが、正しく印刷するには、他のすべての写真を水平に反転する必要があります。これで、画像はすべてpngファイルになり、、というラベルが付けられ"Foo 001.png"ます"Foo 002.png"。文字列の数字のある部分を見て、整数に変換し、n%2==0偶数かどうかを確認し、偶数かどうかを反転するだけでよいと考えています。
bashを使用して文字列から整数に変換する便利な方法があるかどうか、または画像を反転するために何を使用するかはわかりません。
トグル変数を使用して、リスト内の他のすべての画像を反転します。
X=0
cat filenames | while read -r filename ; do
if [ $X -eq 1 ] ; then
# flip $filename
fi
# print $filename
X=$((1-$X))
done
cat filenames上記をに置き換えて、ファイルをアルファベット順ls -1 *.jpgに印刷したり、ファイル名のシーケンス番号をゼロで埋める必要のない方法でバージョンソートしたりできます。*.jpgls -1v
数千のファイルがある場合は、制限を超えないようにするために、上記の代わりにls(ワイルドカードなし)またはとgrepの組み合わせfindを使用できます。sortARG_MAX
bashは数字よりも文字列の方がはるかに優れているので、私の最初の考えは
flip Foo\ *{0,2,4,6,8}.png
flip写真を反転するために使用しているコマンドはどこにありますか。
これは、コマンドが複数のファイル名を受け入れることができることを前提としています。そうでない場合は、ループを使用できます。
for f in Foo\ *{0,2,4,6,8}.png; do flip "$f"; done
私がよく理解しているなら、あなたは1/2 png画像を反転させたいですか?はいの場合:
convert -flip "Foo *{0,2,4,6,8,10}.png"
または、ファイルが多すぎる場合:
# making an array of files
files=( *.png )
# C style for loop (iterating 2 by 2)
for ((i=0; i< ${#files[@]}; i+=2)) {
# fliping the image
convert -flip "${files[i]}"
}
convertコマンドは、よく知られているimagemagickライブラリの一部です。