Domača » kako » Iskanje slik PNG Večje kot x pik skozi lupino Linux

    Iskanje slik PNG Večje kot x pik skozi lupino Linux

    Ko poskušate delati na spreminjanju zasnove vaše spletne strani, se morate ukvarjati s širino slik v vsebini članka. Na večini člankov, ki sem jih napisal, imam precej velike posnetke zaslona, ​​zato, če želim povečati stransko vrstico, je ključnega pomena, da ugotovim, katere slike bodo preširoke, da bi se ujemale z novim dizajnom..

    Ker sem programer, bi mi bilo enostavno napisati majhno aplikacijo, vendar sem začela razmišljati ... zakaj tega ne morem storiti v ukazni vrstici Linuxa.?

    Prva stvar, ki sem jo ugotovil, je bila, da slike PNG prikažejo podatke o velikosti, ko zaženete ukaz »datoteka« na njih:

    $ file image3.png
    image3.png: PNG slikovni podatki, 613 x 657, 8-bitni / barvni RGBA, brez prepletanja

    Zelo uporabno, ker je 99% slike na tej strani v formatu PNG. Zdaj, da ga vržete v zanko za vse datoteke v mape za prenos:

    $ za f v * .png; naredite datoteko $ f;

    image.png: PNG slikovni podatki, 631 x 185, 8-bitni / barvni RGBA, brez prepletanja
    image1.png: PNG slikovni podatki, 631 x 96, 8-bitni / barvni RGBA, brez prepletanja
    image10.png: PNG slikovni podatki, 375 x 395, 8-bitni / barvni RGBA, brez prepletanja
    image11.png: PNG slikovni podatki, 484 x 241, 8-bitni / barvni RGBA, brez prepletanja
    -odrezan-

    To je bolj koristno, vendar bi moral podatke v Excel ali podobne aplikacije, da bi razvrstili podatke, zato sem se odločil, da uporabim ukaz linux “cut”, da izvlečem samo stolpec širine..

    Opazili boste, da parameter -f5 pripoveduje izrezek, da sprejme peti stolpec, in -d razmik po tem, ko pove rez, da uporabi razmik kot ločilo. Znak poševnice je ubežni znak, ki ukazuje lupini, da uporabi prostor kot znak in ne kot presledek.

    $ za f v * .png, naredite datoteko $ f | cut -f5 -d \ t

    631
    631
    375
    484
    -odrezan-

    Ni povsem koristen rezultat, kajne? To naredimo s pomočjo bash if stavka in nato prikažemo samo izhodni ukaz za datoteko, če je širina večja od 600 slikovnih pik.

    Opazujte oznake "(backtick) okoli datoteke $ f | cut… ”, ki kažejo, da bodo ukazi znotraj 'obdelani kot en sam izhod in vneseni v ukaz if, kjer uporabljamo -gt (večji od). Upoštevajte tudi, da okoli obeh strani oklepajev potrebujete prostore []

    za f v * .png; naredite, če ['file $ f | cut -f5 -d -gt 600]; nato datoteko $ f; fi;

    image.png: PNG slikovni podatki, 631 x 185, 8-bitni / barvni RGBA, brez prepletanja
    image1.png: PNG slikovni podatki, 631 x 96, 8-bitni / barvni RGBA, brez prepletanja
    image17.png: slikovni podatki PNG, 638 x 340, 8-bitni / barvni RGBA, brez prepletanja
    image18.png: PNG slikovni podatki, 608 x 448, 8-bitni / barvni RGBA, brez prepletanja
    -odrezan-

    Zdaj imamo seznam vseh datotek, večjih od 600 slikovnih pik. Datoteko $ f lahko na koncu prilagodite tako, da preprosto odmevate imena datotek, če jih morate kopirati ali premakniti drugam:

    za f v * .png; naredite, če ['file $ f | cut -f5 -d -gt 600]; nato echo $ f; fi; končano

    image.png
    image1.png
    image17.png
    image18.png
    -odrezan-

    Lupina Linuxa je neverjetno zmogljiva! Ta rešitev ni resnično praktična za vse, vendar je dobro vedeti, kako delati z lupino, tako da lahko to nalogo opravite, ko morate.