דף הבית » איך ל » מציאת תמונות PNG גדול מ x פיקסלים דרך מעטפת לינוקס

    מציאת תמונות PNG גדול מ x פיקסלים דרך מעטפת לינוקס

    כאשר אתה מנסה לעבוד על שינוי העיצוב של האתר שלך, אתה צריך להיות מודאג עם רוחב התמונות בתוכן המאמר שלך. יש לי מסך גדול לשמצה על רוב המאמרים שכתבתי, אז אם אני רוצה להגדיל את סרגל הצד זה קריטי כדי להבין אילו תמונות הולכים להיות רחב מדי כדי להתאים את העיצוב החדש.

    מאז אני מתכנת, זה יהיה קל לי לכתוב יישום קטן לעשות את זה, אבל זה גרם לי להתחיל לחשוב ... למה אני לא יכול לעשות את זה על שורת הפקודה לינוקס?

    הדבר הראשון הבנתי היה כי תמונות PNG להציג את נתוני הגודל בעת הפעלת הפקודה "קובץ" עליהם:

    קובץ $ image3.png
    Image3.png: נתוני תמונת PNG, 613 x 657, 8 סיביות / צבע RGBA, לא interlaced

    מאוד שימושי מאז 99% של התמונה באתר זה הם בפורמט PNG. אז עכשיו לזרוק אותו לולאה עבור כל הקבצים בספרייה להעלות שלי:

    $ f עבור f * .png, לעשות קובץ $ f; לעשות

    תמונה: PNG נתוני תמונה, 631 x 185, 8-bit / צבע RGBA, לא interlaced
    Image1.png: נתוני תמונת PNG, 631 x 96, 8-bit / צבע RGBA, לא interlaced
    Image10.png: נתוני תמונת PNG, 375 x 395, 8 סיביות / צבע RGBA, לא interlaced
    image11.png: נתוני תמונת PNG, 484 x 241, 8 סיביות / צבע RGBA, לא interlaced
    -גיחך-

    זה יותר שימושי, אבל אני צריך למשוך את הנתונים לתוך Excel או יישום דומה כדי למיין את הנתונים, אז החלטתי להשתמש לינוקס "לחתוך" פקודה לשלוף רק את רוחב העמודה.

    תוכלו להבחין בפרמטר -f5 אומר לחתוך כדי לקחת את הטור החמישי, ו- d \ עם רווח אחרי זה אומר לחתוך להשתמש בחלל כמפריד. תו \ "קו נטוי \" הוא תו בריחה כדי לומר לקליפה להשתמש בחלל כתו, ולא כמרחב לבן.

    $ f עבור f * .png, לעשות קובץ $ f | cut -f5 -d נעשה

    631
    631
    375
    484
    -גיחך-

    לא פלט שימושי לחלוטין, נכון? בואו נדחוף את זה באמצעות הצהרה bash if, ולאחר מכן רק להציג את הפלט של פקודת הקובץ כאשר רוחב גדול מ 600 פיקסלים.

    שים לב לסימנים '(backtick) סביב "$ file f לחתוך ... "קטע, המציין כי הפקודות בתוך" יעובדו כמו פלט יחיד מוזן לתוך משפט אם, שבו אנו משתמשים ב- gt (גדול מ). כמו כן, שים לב שאתה צריך רווחים סביב שני הצדדים של סוגריים []

    עבור f ב * .png, לעשות אם ['file $ f cut -f5 -d-'-gt 600]; ואז הקובץ $ f; fi; לעשות

    תמונה: PNG נתוני תמונה, 631 x 185, 8-bit / צבע RGBA, לא interlaced
    Image1.png: נתוני תמונת PNG, 631 x 96, 8-bit / צבע RGBA, לא interlaced
    Image.png: PNG נתוני תמונה, 638 x 340, 8-bit / צבע RGBA, לא interlaced
    תמונה 18.png: נתוני תמונת PNG, 608 x 448, 8 סיביות / צבע RGBA, לא interlaced
    -גיחך-

    עכשיו יש לנו רשימה של כל הקבצים הגדולים מ 600 פיקסלים רחב. אתה יכול להתאים את "קובץ $ f" בסוף רק כדי הד את שמות הקבצים אם אתה צריך להעתיק או להעביר אותם למקום אחר:

    עבור f ב * .png, לעשות אם ['file $ f cut -f5 -d-'-gt 600]; ואז echo $ f; fi; לעשות

    תמונה
    image1.png
    תמונה 175.png
    image18.png
    -גיחך-

    פגז לינוקס הוא חזק מאוד! פתרון זה אינו מעשי באמת עבור כולם, אבל זה טוב לדעת איך לעבוד עם פגז, כך שתוכל לבצע את זה סוג של משימה כאשר אתה צריך.