Pagrindinis » kaip » PNG nuotraukų paieška didesnė nei x pikselių per „Linux Shell“

    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.