29Jun
כאשר אתה מנסה לעבוד על שינוי העיצוב של האתר שלך, אתה צריך להיות מודאג עם רוחב התמונות בתוכן המאמר שלך.יש לי מסך גדול לשמצה על רוב המאמרים שכתבתי, אז אם אני רוצה להגדיל את סרגל הצד זה קריטי כדי להבין אילו תמונות הולכים להיות רחב מדי כדי להתאים את העיצוב החדש.
מאז אני מתכנת, זה יהיה קל לי לכתוב יישום קטן לעשות את זה, אבל זה גרם לי להתחיל לחשוב. .. למה אני לא יכול לעשות את זה על שורת הפקודה לינוקס?
הדבר הראשון שהבנתי הוא כי תמונות PNG להציג את נתוני הגודל בעת הפעלת הפקודה "קובץ" עליהם:
$ file image3.png
image3.png: נתוני תמונת PNG, 613 x 657, 8-bit / colorRGBA, לא interlaced
שימושי מאוד מאז 99% של התמונה באתר זה הם בפורמט PNG.אז עכשיו לזרוק אותו לולאה עבור כל הקבצים בספרייה להעלות שלי:
$ עבור f ב *. PNG, לעשות קובץ $ f, נעשה
image.png: נתוני תמונה PNG, 631 x 185, 8-bit / צבעRGBA, שאינו מרוכז
image1.png: נתוני תמונת PNG, 631 x 96, 8-bit / צבע RGBA, לא מרובי
image10.png: נתוני תמונת PNG, 375 x 395, 8-bit / color RGBA,interdaced
image11.png: נתוני תמונה PNG, 484 x 241, 8-bit / צבע RGBA, לא interlaced
-snipped-
זה שימושי יותר, אבל אני צריך למשוך את הנתונים לתוך Excel או יישום דומהכדי למיין את הנתונים, אז החלטתי להשתמש לינוקס "לחתוך" הפקודה לשלוף רק את רוחב העמודה.
תבחין בפרמטר -f5 אומר לחתוך כדי לקחת את הטור החמישי, ו- d עם שטח אחרי זה אומר לחתוך להשתמש בחלל כמפריד.התו \ "קו נטוי \" הוא תו בריחה לספר לקליפה כדי להשתמש בחלל כתו, ולא כמרחב לבן.
$ עבור f ב *. png, לעשות קובץ $ f | cut-f5 -d / עשה
631
631
375
484
-snipped-
לא פלט שימושי לחלוטין, נכון?הבה לדחוף את זה באמצעות הצהרה bash if, ולאחר מכן רק להציג את הפלט של פקודת הקובץ כאשר רוחב גדול מ 600 פיקסלים.
שים לב לסימנים '(backtick) סביב "$ file fלחתוך. .. "קטע, המציין כי הפקודות בתוך` יעובדו כפלט יחיד מוזן לתוך הצהרה אם, שבו אנו משתמשים ב- gt( גדול מ).כמו כן, שים לב שאתה צריך רווחים סביב כל צד של סוגריים []
עבור f ב *. PNG, לעשות אם [קובץ $ f |cut -f5 -dtt 600];ולאחר מכן קובץ $ f; Fi, נעשה
image.png: נתוני תמונת PNG, 631 x 185, 8-bit / צבע RGBA, לא interlaced
image1.png: נתוני תמונת PNG, 631 x 96, 8 סיביות / צבע RGBA, תמונה לא מרושתת
image.png: נתוני תמונת PNG, 638 x 340, 8-bit / צבע RGBA, לא מרובעים
image18.png: נתוני תמונת PNG, 608 x 448, 8 סיביות / צבע RGBA, לא interlaced
-snipped-
עכשיו יש לנו רשימה של כל הקבצים הגדולים מ 600 פיקסלים רחב.אתה יכול להתאים את "קובץ $ f" בסוף רק כדי להדהד את שמות הקבצים אם אתה צריך להעתיק או להעביר אותם למקום אחר:
עבור f ב *. PNG, לעשות אם [file $ f |cut -f5 -dtt 600];ולאחר מכן echo $ f; Fi, לעשות
image.png
image1.png
image17.png
image18.png
-snipped-
פגז לינוקס הוא חזק מאוד!פתרון זה אינו מעשי באמת עבור כולם, אבל זה טוב לדעת איך לעבוד עם הקליפה, כך שתוכל לבצע את זה סוג של משימה כאשר אתה צריך.