هناك أوقات يكون لديك فيها ملف نصي يحتوي على محتوى موجود، وتحتاج إلى إضافة المزيد من النص إليه. لحسن الحظ، هناك العديد من أوامر Linux التي يمكنك استخدامها للقيام بذلك. بعض هذه الأوامر قوية بما يكفي لإدراج نص في أي مكان في ملفك.
قم بإنشاء ملف نصي أولاً!
لمتابعة البرنامج التعليمي، يجب أن يكون لديك ملف اختبار جاهز حيث يمكنك إضافة أسطر ورؤية النتيجة. لإنشاء ملف فارغ على Linux، قم بتشغيل الأمر أدناه:
touch
يستبدل مع اسم الملف. على سبيل المثال، سنسميه append.txt. يمكننا إنشاء الملف باستخدام هذا الأمر:
touch append.txt
لرؤية محتوى الملف، قم بتشغيل:
cat append.txt
لن تحصل على أي نتائج حيث لا يوجد محتوى في الملف حاليًا. الآن بعد أن أصبح لدينا ملف فارغ، يمكننا إضافة بعض الأسطر إليه.
1. استخدام الصدى لإضافة نص إلى ملف
يُستخدم أمر echo في الغالب لعرض النص على الجهاز الطرفي، ولكن يمكنك أيضًا استخدامه لإضافة نص إلى ملف. فيما يلي الصيغة الأساسية:
echo (OPTION) (STRING)
لاستخدام أمر echo لإضافة أسطر إلى ملف، ستحتاج إلى بعض المساعدة من عامل إعادة التوجيه (>). لإضافة أسطر نصية إلى ملف باستخدام أمر echo، قم بتشغيل:
echo "string" > filename
استبدل “string” بنص فعلي داخل علامتي الاقتباس المزدوجتين. افعل نفس الشيء بالنسبة لـ “filename”. على سبيل المثال، إذا كنت ترغب في إضافة النص “This is a file” إلى append.txt، فقم بتشغيل:
echo "This is a file" > append.txt
الآن إذا حاولت قراءة محتوى الملف باستخدام الأمر cat، يجب أن ترى السطر يظهر في الإخراج.
ومع ذلك، باستخدام عامل إعادة توجيه واحد (>)، لن تتمكن من إضافة أسطر إلى الملف. إذا حاولت إضافة سطر آخر إلى الملف أعلاه باستخدام نفس الأمر، فسيؤدي ذلك إلى تجاوز المحتوى الحالي للملف. دعنا نرى ذلك عمليًا. قم بتشغيل الأمر أدناه:
echo "Trying to append a line to the file" > append.txt
إذن كيف يمكن التغلب على هذه المشكلة؟ الأمر بسيط. لإضافة بعض النصوص إلى ملف دون تجاوز محتواه، استخدم عامل إعادة توجيه آخر (>>)، مثل هذا:
echo "Trying to append a line to the file" >> append.txt
هذه المرة، سيتم إضافة السطر إلى الملف، كما هو متوقع.
2. استخدام cat لإضافة نص إلى ملف
كما رأينا سابقًا، يعرض الأمر cat محتوى ملف على المحطة الطرفية. الصيغة الأساسية للأمر هي:
cat (OPTION)... (FILE)...
على عكس أمر echo، لا يمكن لأمر cat استخدام أي سلاسل كمعلمات بشكل مباشر. بدلاً من ذلك، يمكنك إلحاق محتويات ملف بملف آخر. للقيام بذلك، استخدم الأمر على النحو التالي:
cat file1 >> file2
استبدل “file1″ و”file2” بأسماء الملفات الفعلية. لذا، في مثالنا السابق، يمكننا إلحاق محتوى ملف آخر بملف append.txt باستخدام:
cat anotherfile.txt >> append.txt
هناك طريقة أخرى جيدة لاستخدام الأمر cat وهي ربط محتويات ملفات متعددة في ملف واحد. للقيام بذلك، حدد أسماء الملفات كحجج، مثل هذا:
cat file1 file2 file3 >> file4
لنفترض أن لديك ثلاثة ملفات نصية مختلفة تحتوي على معلومات ثلاثة موظفين مختلفين. تحتاج إلى دمجها في ملف واحد. للقيام بذلك، قم بتشغيل:
cat employee1.txt employee2.txt employee3.txt >> employees.txt
3. استخدام printf لإضافة نص في نهاية الملف
قد تكون على دراية بـ printf إذا كانت لديك خبرة في لغة البرمجة C. ولكن هل تعلم أن printf هي أداة Linux أيضًا؟ وكما يوحي الاسم، فهي تتيح لك طباعة النص أو البيانات إلى الإخراج القياسي. إليك الصيغة الأساسية:
printf FORMAT (ARGUMENT)...
لإضافة نص إلى ملف باستخدام printf، قم بتشغيل:
printf "Using printf to append text" >> append.txt
ومع ذلك، كما ترى، على عكس أمر echo، لم تتم إضافة سطر جديد إلى النص. وهذا يعني أنه يتعين عليك القيام بذلك يدويًا. يمكنك استخدام حرف الإفلات “\n” في نهاية النص. لذا فلنستخدمه الآن.
printf "Using printf to append text with a new line\n" >> append.txt
هذه المرة، يكون موجه المحطة الطرفية في سطر جديد، على عكس الحالة السابقة.
4. استخدام sed
يقوم الأمر sed، وهو اختصار لـ stream editor، بإجراء تحويلات نصية أساسية على المدخلات. هناك طرق متعددة لاستخدام هذا الأمر. يبدو بناء الجملة الأساسي لإضافة نص إلى الملفات على النحو التالي:
sed (OPTION) (SCRIPT) (FILE...)
لنرى الآن كيف يمكنك إضافة سطر إلى ملف. للقيام بذلك، اتبع تنسيق الأمر التالي:
sed -i '$ a\'
استبدل النص الموجود داخل الأقواس الزاوية () بسلسلة النص واسم الملف على التوالي. لذا إذا كنت تريد إضافة سطر في نهاية الملف، فقم بتشغيل:
sed -i '$ a Do not feel sed' append.txt
يخبر الخيار “-i” النظام بأنه سيستخدم الملف المعني لإدراج النص. تعني علامة “$” أن السطر سيضاف إلى نهاية الملف. إن إضافة “a” أمام النص يخبر النظام بأننا نريد إضافة السطر إلى المحتوى الموجود في الملف.
من الأشياء الجيدة في الأمر sed أنه يمكنك إضافة نص في أي مكان في الملف. على سبيل المثال، إذا كنت تريد إضافة شيء بعد السطر الرابع، فاستخدم الأمر على النحو التالي:
sed -i '4 a Appended after the fourth line' append.txt
هذه المرة، تمت إضافة السطر بعد السطر الرابع تمامًا.
5. استخدام tee لإضافة نص إلى ملف
يتيح لك الأمر tee القراءة من الإدخال القياسي وكتابة الإخراج في الملفات. الصيغة الأساسية هي كما يلي:
tee (OPTION)... (FILE)...
هناك طريقتان لإضافة نص إلى ملف باستخدام الأمر tee. إما استخدام الخيار “-a” أو عامل إعادة التوجيه المزدوج. دعنا نلقي نظرة على الطريقة الأولى.
tee -a append.txt
بعد تنفيذ الأمر، ستدخل إلى الوضع التفاعلي. يمكنك كتابة أي نص والضغط على Enter لإضافته إلى الملف. عند القيام بذلك، سترى نفس النص كما تم إخراجه على الجهاز الطرفي. للخروج من موجه الأوامر، اضغط على Ctrl+D.
في الطريقة الأخرى، لن يكرر الجهاز الطرفي السلسلة التي كتبتها، مما يجعل العملية أكثر نظافة. وبخلاف ذلك، تعمل بنفس الطريقة. إليك الأمر:
tee >> append.txt
كما ترى، عندما كتبنا سلسلة، لم يتم عرضها في المحطة الطرفية مرة أخرى.
6. استخدام awk
يعد الأمر awk قويًا للغاية عندما يتعلق الأمر بالتلاعب بالنصوص. مع بعض التعديلات، يمكنك إضافة نص إلى الملفات باستخدام هذا الأمر. فيما يلي صيغة الأمر:
awk 'BEGIN{print "Feeling awkward"}' >> append.txt
في المثال أعلاه، استخدمنا قاعدة BEGIN الخاصة بأمر awk لطباعة بعض النصوص وإرسالها إلى ملفنا المستهدف باستخدام عوامل إعادة التوجيه.
7. استخدام محرر النصوص لإضافة نص
هذه الطريقة بسيطة إلى حد ما. إذا كنت لا تحب استخدام الأوامر أو تجد صعوبة في حفظ قواعد اللغة، فيمكنك ببساطة استخدام أي محرر نصوص يعمل بنظام Linux لإضافة أسطر إلى ملف نصي. في هذا البرنامج التعليمي، سنستخدم محرر النصوص nano.
لفتح ملف في nano، استخدم الأمر أدناه:
nano
تذكر أن تستبدل باستخدام المسار إلى ملف فعلي في الأمر أعلاه. بمجرد فتحه في المحرر، يمكنك التنقل عبر النص باستخدام مفاتيح الأسهم وكتابة أي شيء تريده باستخدام لوحة المفاتيح.
لإضافة سطر، كل ما نحتاج إلى فعله هو استخدام مفتاح السهم لأسفل للانتقال إلى أسفل الملف. إذا كنت بحاجة إلى إنشاء سطر جديد، فافعل ذلك بالضغط على Enter. ثم أدخل أي نص تريده. أخيرًا، احفظ الملف باستخدام Ctrl+O واخرج من المحرر باستخدام Ctrl+X.
كيفية إعادة توجيه إخراج الأمر إلى ملف
إذا كنت تريد حفظ ناتج أمر ما في ملف، فيمكنك القيام بذلك باستخدام عوامل إعادة التوجيه (>>). لنفترض أنك قمت بتشغيل الأمر ls للحصول على محتويات الدليل الحالي. تريد حفظ القائمة في ملف يسمى command.txt. للقيام بذلك، قم بتشغيل الأمر أدناه:
ls >> command.txt
ينطبق الأمر نفسه على أي أمر آخر في Linux. اكتب هذا الأمر، وأضف عوامل إعادة التوجيه، ثم اسم الملف الذي تريد حفظ الناتج فيه.
كيفية إضافة الإخراج القياسي والخطأ القياسي إلى ملف
قبل أن نختتم، نريد أن نعرض لك خدعة أخرى رائعة للتعامل مع الملفات في Linux. إذا كنت تريد إعادة توجيه كل من الإخراج القياسي والخطأ القياسي، فقم بتشغيل:
command >> file.txt 2>&1
بدلاً من حقل “الأمر”، تحتاج إلى كتابة أمر محدد تريد التقاط مخرجاته. 1 و2 عبارة عن أوصاف ملفات للمخرجات القياسية والخطأ القياسي على التوالي. نستخدم أيضًا علامة & للإشارة إلى أن ما يأتي قبل وبعد عامل إعادة التوجيه عبارة عن أوصاف ملفات وليس أسماء ملفات.
تجربة أفضل للتعامل مع ملفات Linux
بفضل هذه المعرفة الجديدة، يمكنك الآن بسهولة إضافة بعض النصوص أو السلاسل إلى أي ملف من اختيارك. وبناءً على موقفك ومعرفتك بأوامر Linux، يمكنك اختيار أي من الطرق المذكورة أعلاه.