2016-08-23 4 views
1

特定の名前を持つすべてのファイルの大きさ、およびバッシュ出力画像私は私の音楽フォルダにアルバムのアートワーク画像を通過したい

  1. は、すべてのアルバムカバーが正方形であることを確認してください(幅=高さ)
  2. はアルバムは、私はこれらの各操作を行い、いくつかのものを見つけましたが、私はbashので痛々しいほど遅いんだ、とかなりこれを把握することはできません500pxなど

の最小幅を持ってカバーしていることを確認します。私が一番近かったのはこれです:

find /mnt/2TB_1/Music/Archive/Complete -mindepth 2 -maxdepth 2 -type d -exec echo identify -format "%wx%h" "{}/folder.jpg" ';' -fprint0 /mnt/2TB_1/Music/output.txt 

これは正しいフォルダの深さです。これを実行すると、コマンドプロンプトに正しいfolder.jpgのすべてのサイズが表示され、output.txtのみのファイルにパスが(改行なしで)表示されます。しかし、私は本当に1つの場所に(そして、できればoutput.txtファイルに、folder.jpgファイルがたくさんあるので)それらをすべて必要とします。

私が言及したフィルタリングを行うbashスクリプトを下げないだろうが、私のような出力のために解決することは非常に喜んだ:私はちょうどそれを投げることができ、そこから

w xh path 
500x500 /mnt/2TB_1/Music/Archive/Complete/Artist1/Album1/folder.jpg 
500x500 /mnt/2TB_1/Music/Archive/Complete/Artist1/Album2/folder.jpg 
350x350 /mnt/2TB_1/Music/Archive/Complete/Artist2/Album1/folder.jpg 

スプレッドシートとanalasysを行う。

+0

あなたのすべての画像は 'folder.jpg'と呼ばれていますか? –

+0

はい、すべてfolder.jpgと呼ばれています。 – user1053009

答えて

1

何の問題がある、またはファイルが実際にどのように見えるかが、これはあなたが望むように見えるものに近いはずわからない:あなたはそれ一度もう一度、すべての除外と深さとの事で追加することができます

find /mnt/2TB_1 -name folder.jpg -exec identify -format "%G %M\n" {} \; 

あなたが望む方法で動作するか、Excelで必要としないものを削除するだけです。

あなたは(list.txtと呼ばれる)のファイルに出力したい場合は、単に使用:

find ... > list.txt 

をあなたはそのファイルを解析して、正方形ではありませんか500個のピクセルよりも狭くなっていること画像を検索したい場合は、ちょうどこのように、awkを使用することができます。

awk -F'[x ]' '($1!=$2)||($1<500)' list.txt 

-F'[x ]'は次元のxまたはスペースのいずれかを使用して、各行のフィールドを分割するawkに指示します。つまり、幅がフィールド$1に、フィールドの高さがフィールド$2に設定されます。数学は簡単です。

+0

これは結果をコンソールに送信するでしょうか?私はそれらがtxtファイルに送られることを望んでいます、少なくとも4000のヒットがあり、コンソールが保持するよりも多くのデータになるからです。私がしたい分析では、1)height!= width 2)width <500のfolder.jpgファイルを見つけることです。私はその基準に合ったファイルを探したいだけです。 – user1053009

+0

私は要求を明確にするために少し更新しました – user1053009

+0

これは簡単な修正です:あなたのコマンドの最後に '> output_file'を追加するだけで、コンソールに表示されるすべての出力は代わりに' output_file'に書き込まれます。 bashのI/Oストリームとそのリダイレクトについては、そのトピックについてもっと知りたい場合にお読みください。 – Aaron

関連する問題