私は写真をポートレートと風景に並べ替えることを試みています。私はそれが出力を変数に構文解析する
のようなものであることを期待する別のフォルダにすべての風景の写真を移動するにはbashスクリプトでそれを使用していた場合はidentify -format '%w %h\n' 1234.jpg
1067 1600
:私は、JPEGファイルのサイズの寸法を印刷し、コマンドが出ています
#!/bin/bash
# loop through file (this is psuedo code!!)
for f in ~/pictures/
do
# Get the dimensions (this is the bit I have an issue with)
identify -format '%w %h\n' $f | awk # how do I get the width and height?
if $width > $hieght
mv ~/pictures/$f ~/pictures/landscape/$f
fi
done
awkのマニュアルページを見てきましたが、構文が見つからないようです。
これはチケットですが、もう一度awkの人を読んでいると、もっと良い方法があるかもしれません。ありがとうございました。 – Ne0
@ Ne0:画像ファイル名には空白が含まれることが多いので、変数 '$ f'は表示される各場所で引用符で囲む必要があります。 Bashを使っているので、これを整数比較に使うべきです: 'if((width> height))'。この場合は動作しますが、コマンドを 'while 'にパイプするとサブシェルが作成されます。つまり、ループ内で設定された変数の値が失われます。これが重要な場合は、プロセス置換を使用します。while while done <<(identify ...)とループが完了した後に変数値が使用可能になります。 –
whileループは何ですか? 'identify'は複数の行を出力しないようです。 – Kaz