يمكن استبدال أي حرف أو سلسلة باستخدام الأمر `sed`. في بعض الأحيان ، نحتاج إلى استبدال حرف السطر الجديد ( n) في ملف بفاصلة. في هذه المقالة ، نستخدم الأمر `sed` لاستبدال n بفاصلة.
استخدام `sed` لاستبدال n بفاصلة
يمكن أن تحدث العديد من المشكلات عند استبدال n بفاصلة. بشكل افتراضي ، ينتهي كل سطر بـ n عند إنشاء ملف. يمكن تقسيم الأمر `sed` بسهولة على n واستبدال السطر الجديد بأي حرف. يمكن استخدام مُحدِّد آخر بدلاً من n ، لكن فقط عند استخدام GNU sed. عندما يكون n مفقودًا في السطر الأخير من الملف ، يمكن لـ GNU sed تجنب الطباعة n. علاوة على ذلك ، يتم عادةً إضافة n إلى كل إخراج متتالي لـ 'sed'.
قم بإنشاء ملف
في هذه المقالة ، سنوضح لك كيفية استخدام الأمر `sed` لاستبدال n بفاصلة. لمتابعة هذا البرنامج التعليمي ، قم بإنشاء ملف نصي باسم Clients.txt مع معلومات العميل الجدولية التالية.
هوية شخصية | اسم | بريد الالكتروني | هاتف |
---|---|---|---|
ج 01 | Md. Rakib | [البريد الإلكتروني محمي] | 01856233238 |
ج 02 | ماهر افروز | [البريد الإلكتروني محمي] | 01733536342 |
ج 03 | فكر احسان | [البريد الإلكتروني محمي] | 01934737248 |
ج 04 | هلال الدين | [البريد الإلكتروني محمي] | 01534895898 |
ج 05 | نصرت جهان | [البريد الإلكتروني محمي] | 01866345254 |
مثال 1: استبدل n بفاصلة باستخدام -z
يستخدم الخيار -z للتحويل n إلى حرف فارغ ( 0). يتم التعامل مع محتوى الملف كسطر واحد إذا لم يكن يحتوي على أي أحرف فارغة. سيحول الأمر `sed` السطر الجديد إلى حرف فارغ ويستبدل كل سطر بفاصلة n باستخدام أول بحث واستبدال النمط. هنا ، يتم استخدام 'g' للبحث عموميًا عن n. مع نمط البحث والاستبدال الثاني ، سيتم استبدال الفاصلة الأخيرة بـ n.
$قطClients.txt
$سيد -مع 's / n /، / g؛ s /، $ / n /'Clients.txt
سيتم إنتاج الإخراج التالي بعد تشغيل الأوامر.
مثال 2: استبدل n بفاصلة باستخدام a ، b ، $! ون
يمكن استخدام الأمر `sed` لاستبدال n بفاصلة باستخدام أ ، ب ، ن ، و $! . هنا، إلى يستخدم لإلحاق المهام ، ب يستخدم لتفريع المحتوى ، ن يستخدم للانتقال إلى السطر التالي ، و $! يستخدم لمنع تطبيق مهمة الاستبدال على السطر الأخير. سيحل الأمر محل كل ملف ن بفاصلة باستثناء السطر الأخير.
$قطClients.txt
$سيد ': a؛ N؛ $! ba؛ s / n /، / g'Clients.txt
سيتم إنتاج الإخراج التالي بعد تشغيل الأوامر.
مثال 3: استبدل n بفاصلة باستخدام H و h و d و x و y
إذا كنت تريد استبدال ن) مع وجود فاصلة في ملف صغير ، يمكن استخدام الأمر `sed` التالي. هنا، ح يستخدم لإلحاق السطر الأخير بالنص المحتجز ، يتم استخدام ساعة واحدة لنسخ كل سطر من الملف إلى النص المحتجز من السطر الأول ، $! د يستخدم لحذف جميع الأسطر باستثناء السطر الأخير ، x يتم استخدامه لتبادل النص المعلق ومساحة النمط ، و و يستخدم ليحل محل كل ن في النص المحتجز بفاصلة.
$قطClients.txt$سيد 'H؛ 1h؛ $! d؛ x؛ y / n /، /'Clients.txt
سيتم إنتاج الإخراج التالي بعد تشغيل الأوامر.
مثال 4: استبدل n بفاصلة باستخدام -n و H و h و g و p
يمكن استخدام الأمر `sed` لاستبداله ن مع فاصلة مع -ن الخيار الذي يمنع الطباعة التلقائية. كما في المثال السابق ، ح يُستخدم هنا لإلحاق السطر الأخير بالنص المحتجز ، 1 ساعة يتم استخدامه لنسخ كل سطر من الملف إلى نص التعليق ، $ يشير إلى السطر الأخير من الملف ، ز يستخدم لنسخ من النص المحتجز ، و ص يستخدم للطباعة.
$قطClients.txt$سيد-ن'ح ؛ ح 1 ؛ دولار{ز ؛ ق /ن/، / g؛ p} 'Clients.txt
سيتم إنتاج الإخراج التالي بعد تشغيل الأوامر أعلاه.
مثال 5: استبدل n بفاصلة باستخدام H و x و p
H و x و p تم شرحه في الأمثلة السابقة. سيحل أول تعبير بحث واستبدال محل كل منهما ن بفاصلة ، وسيؤدي البحث الثاني واستبدال التعبير إلى استبدال الفاصلة في بداية السطر بمسافة.
$قطClients.txt$سيد-ن'H؛ $ {x؛ s / n /، / g؛ s / ^، //؛ p؛}'Clients.txt
سيتم إنتاج الإخراج التالي بعد تشغيل الأوامر أعلاه.
مثال 6: استبدل n بفاصلة باستخدام N و `cat`
يتم استخدام الأمر `cat` هنا لإرسال محتوى الملف إلى الأمر` sed` و ن يستخدم للانتقال إلى السطر التالي.
$قطClients.txt$قطClients.txt| سيد 'N؛ s / n /، /'
سيتم إنتاج الإخراج التالي بعد تشغيل الأوامر أعلاه.
استنتاج
قد يكون من الضروري استبدال n بفاصلة لنقل البيانات من تنسيق ملف إلى آخر. يمكن أيضًا إجراء هذا النوع من الاستبدال باستخدام أوامر Linux الأخرى. يمكن استخدام العديد من خيارات الأوامر ، مثل H و N و h و x مع الأمر `sed` لإكمال هذه المهمة. يتطرق هذا البرنامج التعليمي إلى عدة طرق لاستخدام الأمر `sed` لاستبدال n بفاصلة.