29Jun
Kui proovite oma veebisaidi disaini muutmisega tööd teha, peate oma artiklite sisuga piltide laiust. Ma olen kirjutanud suurel hulgal artikleid, mida olen kirjutanud, nii et kui soovin küljeriba suurendada, on kriitiline, et välja selgitada, millised pildid on liiga suured, et need sobiksid uue kujundusega.
Kuna ma olen programmeerija, on mul lihtne kirjutada väikest rakendust, et seda teha, kuid see pani mind mõtlema hakata. .. miks ma ei saa seda Linuxi käsureal teha?
Esimene asi, mida ma arvasin, oli see, et PNG kujutised näitavad suuruseandmeid, kui käivitate neile failide käsu:
$ file image3.png
image3.png: PNG kujutise andmed, 613 x 657, 8-bitine / värvRGBA, mitte-põimitud
Väga kasulik, kuna sellel saidil on 99% pilti PNG-vormingus. Nüüd, kui visata see silmuseni kõigile minu üleslaadimiskataloogis olevatele failidele:
$ for f in *. png; teha faili $ f; teha
image.png: PNG kujutise andmed, 631 x 185, 8-bit / värvRGBA, mitte-põimitud
image1.png: PNG kujutise andmed, 631 x 96, 8-bitine / värviline RGBA, mitte-põimitud
image10.png: PNG kujutise andmed, 375 x 395, 8-bitine / värviline RGBA,põimitud
image11.png: PNG kujutise andmed, 484 x 241, 8-bitine / värviline RGBA, mitte-põimitud
-pingutatud-
See on kasulikum, kuid mul oleks vaja tõmmata andmeid Exceli või sarnase rakenduseniet andmeid sortida, nii et ma otsustasin kasutada linux "cut" käsku, et tõmmata lihtsalt laiuse veerg välja.
Märkad, et -f5 parameeter ütleb lõigatud viienda veeru võtmiseks ja -d \ tühikuga pärast seda, kui ta ütleb lõigatud, et kasutada ruumi eraldajana. Kaldkriips \ character on escape-märk, et anda shellile ruumi tähemärgiks, mitte tühikuks.
$ for f in *. png; faili $ f | cut -f5 -d \; tehtud
631
631
375
484
-supplista-
pole päris kasulik väljund, kas see on? Vaatame seda läbi bash, kui avaldus, ja siis näeme ainult failikäsku väljundit, kui laius on suurem kui 600 pikslit.
Pange tähele `(backtick) märgid ümber faili $ f |lõik "...", mis näitavad, et käske `` töödeldakse ühe väljundina ja sisestatakse if-avaldusse, kus me kasutame -gt( suurem kui).Samuti pidage silmas, et teil on tarvis sulgudes mõlemal küljel tühikuid []
f * *. png korral, kui [`file $ f |lõigatud -f5-d \ `-gt 600];seejärel faili $ f; fi; tehke
image.png: PNG kujutise andmed, 631 x 185, 8-bitine / värviline RGBA, mitte-põimitud
image1.png: PNG kujutise andmed, 631 x 96, 8-bitine / värviline RGBA, mitte-põimitud
image17.png: PNG kujutise andmed, 638 x 340, 8-bitine / värviline RGBA, mitte-põimitud
image18.png: PNG kujutise andmed, 608 x 448, 8-bitine / värviline RGBA, mitte-põimitud
-nippendatud-
Nüüd on meil kõikide failide loend, mis on suuremad kui 600 pikslit. Lõppude lõpuks saate muuta "faili $ f", et lihtsalt failide nimede peegeldamine, kui vaja kopeerida või teisaldada neid kusagil mujal:
jaoks f in *. png; teha, kui [`file $ f |lõigatud -f5-d \ `-gt 600];siis echo $ f; fi; tehakse
image.png
image1.png
image17.png
image18.png
-sülearvuti-
Linuxi koorem on uskumatult võimas! See lahendus ei ole kõigile praktiliselt praktiline, kuid on hea teada, kuidas koos shelliga töötada, et saaksite seda tüüpi ülesandeid täita, kui vaja.