מצא את & החלף טקסט במספר מסמכים משורת הפקודה

Anonim

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

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

תחביר הפקודה הבסיסי הוא כדלקמן: perl -pi -w -e 's/THIS/THAT/g;' /path/to/files.txt

לדוגמה למילה אחת, אם אתה צריך להחליף את כל המופעים של "ogre" ב-"cornbread" בכל קובץ txt. בתוך התיקיה "מסמכים", תשתמש בפקודה הבאה:

perl -pi -w -e 's/ogre/cornbread/g;' ~/Documents/.txt

ל דוגמה למציאת והחלפת ביטוי שלם, נניח שנחליף את כל המשפט "מפעל השוקולד " עם "הקוסם מארץ עוץ" בקבוצה של קבצי txt שמתחילים ב-"סרטים" המאוחסנים בספריית המסמכים:

perl -pi -w -e 's/The Chocolate Factory/The Wizard of Oz/g;' ~/מסמכים/סרטים.txt

החיפוש וההחלפה מתבצע באופן מיידי. אתה יכול לבדוק שוב את השינוי על ידי שימוש ב-cat ו-grep כדי לבדוק:

"

cat ~/Documents/Films124.txt |grep Wizard of Oz"

יש להודות שזה מתקדם למדי, וכן, ניתן לבצע איתור והחלפה של אצווה באמצעות מספר מסמכים בצורה ידידותית יותר למשתמש באמצעות אפליקציות GUI כמו TextWrangler ו-BBEdit, אבל לפעמים שורת הפקודה פשוט מהירה יותר עבור משימות מהירות כמו זה ואחרות דומות, בנוסף זה לא דורש הורדות נוספות כדי להשתמש.

אגודל גדול ל-Lifehacker על הטריק המצוין.

Update: הפקודה 'sed' היא דרך נוספת לבצע איתור והחלפה מהירה דרך שורת הפקודה. כיסוי sed הוא בעיקר נושא למאמר אחר, אבל התחביר הבסיסי של שימוש ב-sed למשימה זו הוא קצת יותר פשוט ולכן קל יותר לזכור:

sed -i 's/THIS/THAT/g' /path/to/files.txt

אין דרך נכונה או לא נכונה, אז אם אתה משתמש ב-perl או sed הופך לעניין של העדפה אישית.

מצא את & החלף טקסט במספר מסמכים משורת הפקודה