Linux Kabuğu İle x Pikselden Daha Büyük PNG Resimleri Bulma
Web sitenizin tasarımını değiştirmek için çalışmak istediğinizde, makale içeriğinizdeki resimlerin genişliği ile ilgilenmeniz gerekir. Yazdığım makalelerin çoğunda çok büyük ekran görüntüleri var, bu nedenle kenar çubuğunu artırmak istiyorsanız, hangi tasarımın yeni tasarıma sığmayacak kadar geniş olacağını bulmak çok önemlidir.
Programcı olduğum için, bunu yapmak için küçük bir uygulama yazmak benim için kolay olurdu, ama düşünmeme neden oldu… neden bunu Linux komut satırında yapamıyorum??
İlk düşündüğüm şey, üzerlerinde “dosya” komutunu çalıştırdığınızda PNG görüntülerinin boyut verilerini göstermesiydi:
$ file image3.png
image3.png: PNG görüntü verileri, 613 x 657, 8 bit / renkli RGBA, titreşimli
Bu sitedeki resmin% 99'u PNG formatında olduğundan çok kullanışlıdır. Öyleyse şimdi yükleme dizinimdeki tüm dosyalar için bir döngüye atmak için:
$ f için * .png; $ f; dosya yap
image.png: PNG görüntü verileri, 631 x 185, 8 bit / renkli RGBA, titreşimsiz
image1.png: PNG görüntü verileri, 631 x 96, 8 bit / renkli RGBA, titreşimsiz
image10.png: PNG görüntü verileri, 375 x 395, 8 bit / renkli RGBA, titreşimli
image11.png: PNG görüntü verileri, 484 x 241, 8 bit / renkli RGBA, titreşimli
-snipped-
Bu daha kullanışlıdır, ancak verileri sıralamak için verileri Excel'e veya benzer bir uygulamaya çekmek zorunda kalacağım, bu yüzden sadece genişlik sütununu çıkarmak için linux “cut” komutunu kullanmaya karar verdim.
-F5 parametresinin kesilene beşinci sütunu almasını ve kesimin sınırlayıcı olarak bir boşluk kullanmasını söyledikten sonra -d \ ile boşluk bıraktığını fark edeceksiniz. Slash \ karakteri, kabuğa boşluk olarak değil, karakteri bir karakter olarak kullanmasını söyleyen bir kaçış karakteridir..
$ f için * .png; $ f | cut -f5 -d \;
631
631
375
484
-snipped-
Tamamen yararlı değil çıktı, değil mi? Bunu bir bash ifadesiyle itelim ve genişlik yalnızca 600 pikselden büyük olduğunda yalnızca file komutunun çıktısını gösterelim..
$ F | dosyası etrafındaki '(backtick) işaretlerine dikkat edin. '… komutunun' içindeki komutların tek bir çıktı olarak işleneceğini ve bir -gt (daha büyük) kullandığımız if if ifadesine beslendiğini gösteren bölüm. Ayrıca braketlerin her iki tarafındaki boşluklara ihtiyacınız olduğuna dikkat edin []
f için * .png; [eğer dosya $ f | -f5-d '-gt600] kesildi; daha sonra $ f; fi; dosya
image.png: PNG görüntü verileri, 631 x 185, 8 bit / renkli RGBA, titreşimsiz
image1.png: PNG görüntü verileri, 631 x 96, 8 bit / renkli RGBA, titreşimsiz
image17.png: PNG görüntü verileri, 638 x 340, 8 bit / renkli RGBA, titreşimli
image18.png: PNG görüntü verileri, 608 x 448, 8 bit / renkli RGBA, titreşimsiz
-snipped-
Şimdi 600 pikselden daha geniş olan tüm dosyaların bir listesi var. Sonunda “$ f” dosyasını, başka bir yere kopyalamanız veya başka bir yere taşımanız gerekirse dosya adlarını ekarte etmek için ayarlayabilirsiniz:
f için * .png; [eğer dosya $ f | -f5-d '-gt600] kesildi; daha sonra echo $ f; fi; done
resim.png
image1.png
image17.png
image18.png
-snipped-
Linux kabuğu inanılmaz derecede güçlü! Bu çözüm herkes için gerçekten pratik değildir, ancak kabukla nasıl çalışılacağını bilmek iyidir, böylece ihtiyaç duyduğunuzda bu tür işleri başarabilirsiniz..