PNG képek keresése nagyobb mint x pixel A Linux Shell segítségével
Amikor megpróbálja megváltoztatni a webhelyének tervezését, aggódnia kell a cikk tartalmának képeinek szélességével. Jól ismert nagy képeim vannak a legtöbb cikkben, amit írtam, így ha meg szeretném növelni az oldalsávot, akkor fontos, hogy kitaláljuk, mely képek lesznek túl szélesek ahhoz, hogy illeszkedjenek az új designhoz.
Mivel programozó vagyok, könnyű lenne írni egy kis alkalmazást erre, de elkezdtem gondolkodni… miért nem tudom ezt a Linux parancssorban végrehajtani?
Az első dolog, amit rájöttem, az volt, hogy a PNG-képek a "fájl" parancs futtatásakor megjelenítik a méretadatokat:
$ fájl image3.png
image3.png: PNG képadatok, 613 x 657, 8 bites / színes RGBA, nem átlapolt
Nagyon hasznos, mivel a webhely 99% -a PNG formátumú. Tehát most dobja be egy hurokba a feltöltési könyvtárban lévő összes fájlhoz:
$ for f a * .png;
image.png: PNG képadatok, 631 x 185, 8 bites / színes RGBA, nem átlapolt
image1.png: PNG képadatok, 631 x 96, 8 bites / színes RGBA, nem átlapolt
image10.png: PNG képadatok, 375 x 395, 8 bites / színes RGBA, nem átlapolt
image11.png: PNG képadatok, 484 x 241, 8 bites / színes RGBA, nem átlapolt
-snipped-
Ez sokkal hasznosabb, de az adatokat rendezni szeretném az Excelbe vagy hasonló alkalmazásba, ezért úgy döntöttem, hogy a linux “cut” parancsot csak a szélesség oszlop kihúzásához használom..
Észreveszed, hogy a -f5 paraméter azt mondja, hogy az ötödik oszlopot elvágja, a -d pedig egy szóközt, miután azt mondja, hogy egy vágót használ, hogy egy szóközt használjon. A slash karakter egy menekülési karakter, amely megmondja a shellnek, hogy a szóközt karakterként használja, nem pedig szóközként.
$ for f a * .png-ban, a $ f | cut -f5 -d fájl készítése
631
631
375
484
-snipped-
Nem teljesen hasznos kimenet, ugye? Nyomja meg ezt a bash if utasítással, majd csak akkor jelenítse meg a fájlparancs kimenetét, ha a szélessége nagyobb, mint 600 pixel.
Figyelje meg a „(backtick) jeleket a„ f $ cut… ”szakasz, amely azt jelzi, hogy a 'belsejében lévő parancsok egyetlen kimenetként kerülnek feldolgozásra és az if utasításba kerülnek, ahol egy -gt (nagyobb) értéket használunk. Szintén vegye figyelembe, hogy a zárójelek mindkét oldala körül szóköz van []
f esetén a * .png; cut -f5 -d '-gt 600]; majd fájl $ f; fi; kész
image.png: PNG képadatok, 631 x 185, 8 bites / színes RGBA, nem átlapolt
image1.png: PNG képadatok, 631 x 96, 8 bites / színes RGBA, nem átlapolt
image17.png: PNG képadatok, 638 x 340, 8 bites / színes RGBA, nem átlapolt
image18.png: PNG képadatok, 608 x 448, 8 bites / színes RGBA, nem átlapolt
-snipped-
Most van egy lista a 600 képpontnál szélesebb fájlról. A „fájl $ f” végén állíthatja be a fájlneveket, ha máshol szeretné átmásolni vagy áthelyezni őket:
f esetén a * .png; cut -f5 -d '-gt 600]; majd echo $ f; fi; kész
image.png
image1.png
image17.png
image18.png
-snipped-
A Linux héj hihetetlenül erős! Ez a megoldás nem igazán praktikus mindenkinek, de jó tudni, hogyan kell dolgozni a héjjal, így elvégezheti az ilyen típusú feladatokat, amikor.