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.