دليل المبتدئين إلى Shell Scripting 3 المزيد من الأوامر الأساسية والسلاسل
لقد تعلمت كيفية إنشاء النصوص البرمجية واستخدام الوسيطات وبناء الحلقات. الآن ، دعونا نلقي نظرة على بعض الأوامر الأساسية ، ومعالجة الملفات النصية ، وإعادة توجيه المدخلات والمخرجات إلى الملفات والأوامر الأخرى.
بعض الأوامر الأساسية المفيدة
لقد قدمنا لك بالفعل تفصيلًا أساسيًا لنصوص القشرة ومخططًا يستند إلى أمثلة للحلقات ، ولكن احرص على مراجعة هذه المقالات إذا فاتتك دليل البرمجة النصية الخاص بنا حتى الآن.
سطر الأوامر رائع للعديد من الأسباب ، وإعادة التوجيه هي واحدة من أبرزها. إذا كان عليك أن تقوم بتدوين وإخراج ناتج كل أمر من أجل اتخاذ إجراء إضافي أو استخدام ذلك لشيء آخر ، فعندئذ كنا جميعًا نتعرض للجنون منذ فترة طويلة. يتيح لنا إعادة التوجيه استخدام هذا المخرج وحفظه أو استخدامه على الفور كمدخل لأمر آخر. يمكننا أيضًا استخدام الملفات كمدخلات للأوامر الأخرى.
قبل أن نمضي ، دعونا نغطي بعض الأوامر الأساسية التي يمكن استخدامها في العديد من الأماكن المختلفة.
صدى صوت - يقوم هذا الأمر ببساطة بطباعة (يعرض) كامل مجملته على سطر الأوامر كمخرج
صدى حجة مع المساحات
كما ترون ، يجب "هرب" الشخصيات الخاصة بحيث يتم التعامل معها بشكل طبيعي. يتم ذلك باستخدام خط مائل عكسي (\) أمام الحرف. من الأفضل استخدام الاقتباسات. يعمل الأمر echo أيضًا مع المتغيرات.
كما ترون ، تتصرف الاقتباسات الفردية والمزدوجة بشكل مختلف. لمزيد من المعلومات ، راجع ما الفرق بين الأسعار الفردية والمزدوجة في Bash Shell?
قط - يعرض هذا الأمر محتويات الملفات النصية كمخرجات.
القطة file_to_be_read
لنفترض أننا أنشأنا هذا الملف النصي في nano:
عندما نستخدم الأمر cat في الملف ، يمكننا أن نرى أنه خرج.
grep - هذه واحدة من أقوى الأوامر وأكثرها فائدة في Linux. إنها تعني Global / Regular Expression Print. ينظر من خلال ملف ويطبع أي خط يطابق نمط معين. ونظرًا لأن هذا النمط يستند إلى "التعبير العادي" ، فإن الخط الموجز يمكن أن يؤدي إلى مطابقة عدد كبير من الأنماط. لا ، على الرغم من ذلك ، يمكنك إدخال الخرشنة للبحث.
ملف نمط grep
أؤكد لك ، يمكن grep أن تفعل المزيد ، ولكن الآن دعونا نتمسك بالأشياء الأسهل.
إعادة توجيه المخرجات
لإعادة توجيه إخراج أمر إلى ملف ، فإننا نستفيد من شخصية خاصة ، الرمز الأكبر من (>).
دعونا نغير قائمتنا ، أليس كذلك؟ أدخل الأمر التالي:
صدى بيبروني> قائمة
يمكنك أن ترى أن الصدى لا يعرض الخط بعد الآن ، وعندما ننظر إلى محتويات ملف "القائمة" ، نرى ما رددنا فيه.
لاحظ أيضًا أنه تمت إزالة المحتويات السابقة من "القائمة". حاول مرة أخرى:
يمكن أن يكون هذا مفيدًا عندما تريد إعادة استخدام ملف ، ولكن غالبًا ما نريد فقط إضافته إلى ملف موجود. لهذا ، نستخدم اثنين من الرموز المتتالية أكبر من الرموز:
صدى فلفل أصفر >> قائمة
سهل! دعونا نستخدم هذا الأمر لإنشاء قائمة أكبر ، يجب علينا?
هناك نذهب. أعتقد أنك تستطيع أن ترى لماذا يستخدم هذا العدد الكبير من المهووسين سطر الأوامر لإعداد قوائم المهام وما شابه ، لكن الأمر أفضل.
لنأخذ إخراج أمر ووضعه في ملف:
ls -al /> ~ / rootlist
جعل قوائم الملفات وتحريرها ، ثم تشغيل الأوامر على تلك التي تريدها لم يكن أبسط من ذلك. وبينما نقوم بهذه الوظائف الأساسية في سطر الأوامر ، فإن هذه الأعمال تعمل بشكل جيد في النصوص أيضًا.
الأنابيب ، أو تسلسل
يتم تسمية الأنابيب لأن ذلك يستخدم الأنبوب ، (| ؛ مشترك مع المفتاح \ على معظم لوحات المفاتيح). أساسا ، يأخذ إخراج أمر واحد ويغذي مباشرة إلى آخر. يمكنك إنشاء سلاسل طويلة من الأوامر للحصول على إخراج مرغوب جدًا بهذه الطريقة ، وهو مناسب جدًا للأوامر مثل grep.
إنه يعمل كثيرًا مثل ">" إلا أنه يمكن تقييده عدة مرات وتأثيره أكثر عمومية من حيث أنه لا يحتاج إلى المرور عبر ملف نصي.
كما ترون ، grep حساس لحالة الأحرف. يمكنك استخدام علامة "-i" لجعلها تتجاهل الحالة.
إعادة توجيه المدخلات
يمكنك أيضًا أخذ مدخلات من الملفات للأوامر باستخدام الرمز الأقل من (<).
قط < list
"هذا ليس مختلفًا عن استخدام الحجة!" قد تقول. حسنًا ، ستكون صحيحًا في هذه الحالة. عندما يكون إعادة توجيه المدخلات مفيدًا فعليًا ، يتم ربط الأوامر معًا.
لنفترض أننا نريد تصفية أي كلمة بها "pep" فيها من ملف "القائمة" الحالي إلى ملف جديد يسمى "المراجعات".
grep pep مراجعات
دعونا إعادة هذا الأمر ، وإضافة بعض الفرز.
grep pep مراجعات
سيستخدم هذا "pep" كمصطلح بحث من "قائمة" ملف الإدخال ، وفرزها حسب الترتيب الأبجدي (جميع المصطلحات الكبيرة يتبعها جميع المصطلحات الصغيرة) ، ثم قم بإخراجه في ملف "المراجعات".
لتوضيح أمر الفرز ، لنلق نظرة على المثال التالي:
كما ترى ، فإن إضافة علامة "-f" إلى أمر الفرز يسمح لك بتجاهل الحالة. وهذا يسهل علينا ترتيب الحروف الأبجدية في الملفات النصية وتجاهل الكتابة بالأحرف الكبيرة عندما لا يهم.
سيناريو بسيط
لنقم بإنشاء برنامج نصي يحتوي على النموذج التالي:
النصي قائمة
سوف يستغرق المصطلح ويستخدم grep للبحث من خلال ملف قائمة ، وفرز النتائج ، ثم إخراجها إلى ملف آخر.
في ما يلي الدليل الذي سنختبر النص البرمجي فيه:
ويمكننا إنشاء قائمة بما هنا ، ثم تشغيل البرنامج النصي.
ها أنت ذا! كلما تعلمت قواعد التعبيرات العادية ، كلما كان بإمكانك إنشاء أمر بحث أكثر دقة. وأي شيء صالح في علامات اقتباس يمكن استبداله بوسيطة الأولى!
بقدر ما يذهب الفرز ، يمكنك القيام بأكثر من مجرد ترتيب أبجدي. ألقِ نظرة على صفحة الرجل لبعض الأوامر التالية:
- tsort - وظيفة فرز طوبولوجي أكثر تقدمًا
- tr - يتيح لك تعيين أحرف محددة لأحرف أخرى ، وتسجيلها فيما بينها.
- uniq - يزيل أي غير فريد (اقرأ: مكرر)
- awk - لغة / وظيفة معالجة نص متقدمة بالفعل يمكن استخدامها لفصل الحقول في أسماء الملفات
- قطع ، لصق / انضمام - أوامر مفيدة لعزل الحقول من الملفات النصية وإضافة بيانات جديدة إلى أعمدة
- تبدو - عمليات البحث مثل grep ، ولكن يستخدم ملف القاموس (التي يمكن تحديدها من قبل المستخدم) للبحث
- wc - يتيح لك الحصول على عدد الكلمات وعدد الأسطر وعدد الأحرف والمزيد
لقد ألقينا نظرة على بعض الأساسيات الأخرى اليوم والتي يمكن أن تكون مفيدة في سطر الأوامر كما في النصوص. غالبًا ما تكون البيانات المستندة إلى النصوص في صميم الأشياء التي نستخدمها يوميًا ، وبالتالي القدرة على التعامل معها والبحث عنها والتلاعب بها.
ما هي بعض النصوص المفضلة لديك؟ هل لديك أي برامج نصية ذات استخدام خاص للملفات النصية؟ شارك ما تعرفه في التعليقات!