PNG nuotraukų paieška didesnė nei x pikselių per „Linux Shell“
Kai bandote pakeisti savo svetainės dizainą, turite rūpintis savo straipsnio turinio vaizdų pločiu. Aš turiu žymiai didelius ekrano įrašus daugelyje straipsnių, kuriuos parašiau, todėl jei noriu padidinti šoninę juostą, labai svarbu išsiaiškinti, kurie paveikslėliai bus per plati, kad tilptų į naują dizainą.
Kadangi aš esu programuotojas, man būtų lengva parašyti nedidelę programą, tačiau tai padėjo man pradėti galvoti ... kodėl negaliu to padaryti Linux komandinėje eilutėje?
Pirmas dalykas, kurį išsiaiškinau, buvo tas, kad PNG atvaizdai parodo dydžio duomenis, kai paleidžiate „failo“ komandą:
$ file image3.png
image3.png: PNG vaizdo duomenys, 613 x 657, 8 bitų / spalvų RGBA, nesusieta
Labai naudinga, nes 99% šios svetainės nuotraukos yra PNG formatu. Taigi dabar mesti jį į visus mano įkėlimo katalogo failus:
$ for f * .png; padaryti failą $ f;
image.png: PNG vaizdo duomenys, 631 x 185, 8 bitų / spalvų RGBA, nesupakuota
image1.png: PNG vaizdo duomenys, 631 x 96, 8 bitų / spalvų RGBA, nesupakuota
image10.png: PNG vaizdo duomenys, 375 x 395, 8 bitų / spalvų RGBA, nekeičiama
image11.png: PNG vaizdo duomenys, 484 x 241, 8 bitų / spalvų RGBA, nesusieta
-nuskustas-
Tai yra naudingiau, bet norėčiau surinkti duomenis į „Excel“ arba panašią programą, kad galėčiau rūšiuoti duomenis, todėl nusprendžiau naudoti „linux“ komandą, kad ištrauktumėte tik plotį.
Pastebėsite, kad parametras -f5 parodo, kad supjaustyti reikia penktąjį stulpelį, o -d, po to, kai jis nurodo, kad erdvė naudojama kaip ribotuvas. Brūkšnelis yra pabėgimo simbolis, kad korpusas galėtų naudoti erdvę kaip simbolį, o ne kaip tarpą.
$ for f * .png; padaryti failą $ f | cut -f5 -d;
631
631
375
484
-nuskustas-
Ar ne visiškai naudinga? Paspauskite, kad per bash, jei pareiškimas, ir tada rodyti tik failo komandą, kai plotis yra didesnis nei 600 pikselių produkcija.
Atkreipkite dėmesį į „(backtick) ženklus aplink„ failą $ f | „cut…“ skyriuje, kuriame nurodoma, kad komandos viduje esančios komandos bus apdorojamos kaip vienas išėjimas ir įvedamos į „if pareiškimą“, kur mes naudojame -gt (didesnis nei). Taip pat atkreipkite dėmesį, kad jums reikia erdvių aplink abiejų skliaustų pusių []
už f į * .png; atlikite, jei ['failas $ f | cut -f5 -d '-gt 600]; tada failą $ f; fi;
image.png: PNG vaizdo duomenys, 631 x 185, 8 bitų / spalvų RGBA, nesupakuota
image1.png: PNG vaizdo duomenys, 631 x 96, 8 bitų / spalvų RGBA, nesupakuota
image17.png: PNG vaizdo duomenys, 638 x 340, 8 bitų / spalvų RGBA, nekeičiama
image18.png: PNG vaizdo duomenys, 608 x 448, 8 bitų / spalvų RGBA, nekeičiama
-nuskustas-
Dabar mes turime visų failų, didesnių nei 600 pikselių, sąrašą. Galų gale galite pakoreguoti „failą $ f“, kad tiesiog atkurtumėte failų vardus, jei juos reikia kopijuoti ar perkelti kitur:
už f į * .png; atlikite, jei ['failas $ f | cut -f5 -d '-gt 600]; tada echo $ f; fi;
image.png
image1.png
image17.png
image18.png
-nuskustas-
Linux apvalkalas yra neįtikėtinai galingas! Šis sprendimas nėra tikrai praktiškas visiems, tačiau gerai žinoti, kaip dirbti su apvalkalu, kad galėtumėte atlikti šią užduotį, kai reikia.