كيفية استبدال Newline بفاصلة باستخدام الأمر `sed`

How Replace Newline With Comma Using Sed Command



يمكن استبدال أي حرف أو سلسلة باستخدام الأمر `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 بفاصلة.