Kun yrität työskennellä sivustosi suunnittelun muuttamisen suhteen, sinun on otettava huomioon artikkelisi sisällön leveys. Minulla on huomattavia suuria kuvakaappauksia useimmista kirjoittamistani artikkeleista, joten jos haluan lisätä sivupalkkia, on kriittinen selvittää, mitkä kuvat ovat liian laajoja, jotta ne sopisivat uuteen muotoiluun.
Koska olen ohjelmoija, olisi helppoa kirjoittaa pieni sovellus tähän, mutta se sai minut ajattelemaan ... miksi en voi tehdä tätä Linux-komentorivillä?
Ensimmäinen asia, jonka huomasin, oli, että PNG-kuvat näyttävät koon tiedot, kun suoritat niissä olevan "tiedosto" -komennon:
$ file image3.png
image3.png: PNG-kuvadata, 613 x 657, 8-bittinen / värillinen RGBA, ei-lomitettu
Erittäin hyödyllinen, koska 99% tällä sivustolla olevasta kuvasta on PNG-muodossa. Joten nyt heittää se silmukkaan kaikille tiedostoni latausluettelostani:
$ for f in * .png; tee tiedosto $ f; tehty
image.png: PNG-kuvadata, 631 x 185, 8-bittinen / väri RGBA, ei-lomitettu
image1.png: PNG-kuvadata, 631 x 96, 8-bittinen / värillinen RGBA, ei-lomitettu
image10.png: PNG-kuvadata, 375 x 395, 8-bittinen / värillinen RGBA, ei-lomitettu
image11.png: PNG-kuvadata, 484 x 241, 8-bittinen / värillinen RGBA, ei-lomitettu
-snipped-
Tämä on hyödyllisempi, mutta minun pitäisi vetää tiedot Exceliin tai vastaaviin sovelluksiin tietojen lajittelemiseksi, joten päätin käyttää linux-leikkauskomentoa vetämällä vain leveyspylväästä.
Huomaat, että -f5-parametri kertoo leikkauksen ottavan viidennen sarakkeen ja -d \ sen tilan jälkeen, kun se kertoo leikkauksen käyttämään tilaa rajaajana. Slash \ -merkki on välilyönti, joka kertoo shellille, että tilaa käytetään merkkinä eikä välilyönnä.
$ for f in * .png; tee tiedosto $ f | leikkaa -f5 -d \; tehty
631
631
375
484
-snipped-
Ei täysin hyödyllinen tuotos, eikö? Työnnä se läpi bash-lausekkeen kautta ja näyttäkää vain tiedoston komennon tulos, kun leveys on suurempi kuin 600 pikseliä.
Huomaa "(backtick) -merkit" tiedoston $ f | ympärille leikata ... "-osiosta, joka ilmaisee, että" sisällä olevat komennot käsitellään yhtenä tuotoksena ja syötetään if-lausekkeeseen, jossa käytämme -gt (suurempi kuin). Huomaa myös, että tarvitset välilyöntejä molemmille puolille suluissa []
jos f on * .png, tee jos ['tiedosto $ f | leikata -f5-d \ '-gt 600]; sitten tiedosto $ f; fi; tehty
image.png: PNG-kuvadata, 631 x 185, 8-bittinen / väri RGBA, ei-lomitettu
image1.png: PNG-kuvadata, 631 x 96, 8-bittinen / värillinen RGBA, ei-lomitettu
image17.png: PNG-kuvadata, 638 x 340, 8-bittinen / väri RGBA, ei-lomitettu
image18.png: PNG-kuvatiedot, 608 x 448, 8-bittinen / värillinen RGBA, ei-lomitettu
-snipped-
Nyt meillä on luettelo kaikista tiedostoista, jotka ovat suurempia kuin 600 pikseliä leveä. Voit lopettaa "tiedoston $ f" lopettaaksesi tiedostonimet vain, jos haluat kopioida tai siirtää niitä muualle:
jos f on * .png, tee jos ['tiedosto $ f | leikata -f5-d \ '-gt 600]; sitten echo $ f; fi; tehty
image.png
image1.png
image17.png
image18.png
-snipped-
Linux-kuori on uskomattoman tehokas! Tämä ratkaisu ei ole kaikille käytännöllinen, mutta on hyvä tietää, miten työskennellä kuoren kanssa, jotta voit suorittaa tällaisen tehtävän, kun tarvitset.