Mājas lapa » » PNG attēlu meklēšana lielāka par x pikseļiem Izmantojot Linux Shell

    PNG attēlu meklēšana lielāka par x pikseļiem Izmantojot Linux Shell

    Kad jūs mēģināt mainīt savas vietnes dizainu, jums ir jārūpējas par jūsu raksta saturā esošo attēlu platumu. Man ir lieliski ekrānšāviņi par lielāko daļu rakstu, tāpēc, ja vēlos palielināt sānjoslu, ir svarīgi izdomāt, kuri attēli būs pārāk plaši, lai tie atbilstu jaunajam dizainam.

    Tā kā es esmu programmētājs, man būtu viegli rakstīt nelielu lietojumprogrammu, lai to izdarītu, bet tas lika man sākt domāt ... kāpēc es nevaru darīt to Linux komandrindā?

    Pirmā lieta, ko es sapratu, bija tas, ka PNG attēli attēlo lieluma datus, palaižot tiem “faila” komandu:

    $ fails image3.png
    image3.png: PNG attēla dati, 613 x 657, 8 bitu / krāsu RGBA, nepārveidoti

    Ļoti noderīga, jo 99% no šīs vietnes attēla ir PNG formātā. Tātad tagad, lai to ievietotu cilpā visiem failiem augšupielādes direktorijā:

    $ for f * .png; veiciet failu $ f;

    image.png: PNG attēla dati, 631 x 185, 8 bitu / krāsu RGBA, nav savstarpēji sasaistīti
    image1.png: PNG attēla dati, 631 x 96, 8 bitu / krāsaina RGBA, nepārveidota
    image10.png: PNG attēla dati, 375 x 395, 8 bitu / krāsu RGBA, nepārveidoti
    image11.png: PNG attēla dati, 484 x 241, 8 bitu / krāsu RGBA, nepārveidoti
    -snipped-

    Tas ir vairāk noderīgi, bet, lai šķirotu datus, man ir jāvelk dati Excel vai līdzīgā lietojumprogrammā, tāpēc es nolēmu izmantot linux “cut” komandu, lai izvilktu tikai platuma kolonnu.

    Jūs pamanīsiet, ka parametrs -f5 norāda, ka ir jāizņem piektā sleja, un -d ar atstarpi pēc tam, kad tas ir izteikts, lai izmantotu atstarpi kā atstarpi. Slīpsvītra ir izbēgšanas raksturs, kas liek čaulai izmantot telpu kā rakstzīmi, nevis kā atstarpi.

    $ for f * .png; vai fails $ f | cut -f5 -d;

    631
    631
    375
    484
    -snipped-

    Vai ne pilnīgi noderīga produkcija? Let's push, ka, izmantojot bash, ja paziņojums, un tad tikai parādīt faila komandas izejas, ja platums ir lielāks par 600 pikseļi.

    Ievērojiet “(backtick) zīmes ap“ failu $ f | sadaļa, kas norāda, ka komandas iekšpusē 'tiks apstrādātas kā viena izeja un ievadītas if paziņojumā, kur mēs izmantojam -gt (lielāks par). Ņemiet vērā arī to, ka abās kronšteinu pusēs ir nepieciešamas telpas []

    par f in * .png; veiciet, ja ['file $ f | cut -f5 -d '-gt 600]; tad failu $ f; fi;

    image.png: PNG attēla dati, 631 x 185, 8 bitu / krāsu RGBA, nav savstarpēji sasaistīti
    image1.png: PNG attēla dati, 631 x 96, 8 bitu / krāsaina RGBA, nepārveidota
    image17.png: PNG attēla dati, 638 x 340, 8 bitu / krāsu RGBA, nepārveidoti
    image18.png: PNG attēla dati, 608 x 448, 8 bitu / krāsu RGBA, nepārveidoti
    -snipped-

    Tagad mums ir saraksts ar visiem failiem, kas ir lielāki par 600 pikseļiem. Varat pielāgot “faila $ f” beigās, lai vienkārši atveidotu faila nosaukumus, ja vēlaties tos kopēt vai pārvietot citur:

    par f in * .png; veiciet, ja ['file $ f | cut -f5 -d '-gt 600]; tad echo $ f; fi; darīts

    image.png
    image1.png
    image17.png
    image18.png
    -snipped-

    Linux apvalks ir neticami spēcīgs! Šis risinājums nav īsts praktisks ikvienam, bet ir labi zināt, kā strādāt ar apvalku, lai jūs varētu paveikt šāda veida uzdevumus, kad jums ir nepieciešams.