Kad jūs mēģināt strādāt pie mājas lapas dizaina maiņas, jums ir jārūpējas par attēla platumu jūsu raksta saturā. Man ir bijuši pazīstami lieli ekrānuzņēmumi lielākajā daļā raksta, ko esmu uzrakstījis, tādēļ, ja es vēlos palielināt sānjoslu, ir svarīgi noskaidrot, kuri attēli būs pārāk plaši, lai tie atbilstu jaunajam dizainam.
Tā kā es esmu programmētājs, man viegli būtu uzrakstīt nelielu pieteikumu, lai to izdarītu, bet tas lika man sākt domāt ... kāpēc es to nevaru darīt ar Linux komandrindu?
Pirmā lieta, ko es sapratu, bija tas, ka PNG attēli parāda izmēra datus, kad palaižat komandu "file":
$ file image3.png
image3.png: PNG attēla dati, 613 x 657, 8 bitu / krāsas RGBA, bez interlaced
Ļoti noderīga, jo 99% no šīs vietnes attēla ir PNG formātā. Tātad, tagad, lai to iemestu cilpa visiem failiem manā augšupielādētā direktorijā:
$ for f in * .png; do file $ f; done
image.png: PNG attēla dati, 631 x 185, 8 bitu / krāsu RGBA, bez interlaced
image1.png: PNG attēlu dati, 631 x 96, 8 bitu / krāsu RGBA, bez interlaced
image10.png: PNG attēla dati, 375 x 395, 8 bitu / krāsas RGBA, bez interlaced
image11.png: PNG attēla dati, 484 x 241, 8 bitu / krāsa RGBA, bez interlaced
-putekļains
Tas ir daudz noderīgāks, taču, lai kārtotu datus, man vajadzētu pull datus uz Excel vai līdzīgu lietojumprogrammu, tāpēc es nolēmu izmantot komandu linux "cut", lai izvelētu tikai platuma kolonnu.
Jūs ievērosiet, ka -f5 parametrs norāda griezumu, lai ņemtu piekto kolonnu, un -d \ ar atstarpi pēc tam, kad tā stāsta par griezumu, lai izmantotu atstarpi kā delimiter. Slīpsvītra \ raksturs ir aizbēgšanas rakstzīme, kas norāda, ka apvalks izmanto atstarpi kā rakstzīmi, nevis kā atstarpi.
$ for f in * .png; do file $ f | cut -f5 -d \; done
631
631
375
484
-putekļains
Nav pilnīgi noderīgs produkts, vai tas ir? Nospiedīsim to, izmantojot ar bash, ja parādīsies, un pēc tam parādīsies tikai faila komandas izlaide, ja platums ir lielāks par 600 pikseļiem.
Ievērojiet, ka "(backtick) zīmes ap" failu $ f | sagriež ... ", kas norāda, ka komandas iekšpusē" tiks apstrādātas kā viena izlaide un tiek ievadītas if paziņojumā, kur mēs izmantojam -gt (lielāks par). Ņemiet arī vērā, ka jums ir vajadzīgas vietas ap iekavu abām pusēm []
par f in * .png; darīt, ja ['file $ f | sagrieziet -f5-d \ '-gt 600]; tad failu $ f; fi; izdarīt
image.png: PNG attēla dati, 631 x 185, 8 bitu / krāsu RGBA, bez interlaced
image1.png: PNG attēlu dati, 631 x 96, 8 bitu / krāsu RGBA, bez interlaced
image17.png: PNG attēla dati, 638 x 340, 8 bitu / krāsu RGBA, bez interlaced
image18.png: PNG attēla dati, 608 x 448, 8 bitu / krāsa RGBA, bez interlaced
-putekļains
Tagad mums ir saraksts ar visiem failiem, kuru platums ir lielāks par 600 pikseļiem. Galu galā varat koriģēt "file $ f", lai vienkārši izceltu failu nosaukumus, ja vēlaties kopēt vai pārvietot tos kaut kur citur:
par f in * .png; darīt, ja ['file $ f | sagrieziet -f5-d \ '-gt 600]; tad echo $ f; fi; pabeigts
image.png
image1.png
image17.png
image18.png
-putekļains
Linux čaula ir neticami jaudīga! Šis risinājums nav īsti praktisks visiem, taču ir labi zināt, kā strādāt ar čaulu, lai jūs varētu paveikt šāda veida uzdevumu, kad tas ir nepieciešams.