وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش جایگزینی خط جدید با کاما با استفاده از دستور sed

0 2
زمان لازم برای مطالعه: 4 دقیقه


هر کاراکتر یا رشته ای را می توان با استفاده از دستور sed جایگزین کرد. گاهی اوقات، لازم است کاراکتر خط جدید (\n) را در یک فایل با کاما جایگزین کنیم. در این مقاله از دستور sed برای جایگزینی \n با کاما استفاده می کنیم.

استفاده از «sed» برای جایگزینی \n با کاما

هنگام جایگزینی \n با کاما ممکن است مشکلات زیادی رخ دهد. به‌طور پیش‌فرض، هنگام ایجاد فایل، هر خط به \n ختم می‌شود. دستور `sed` به راحتی می تواند تقسیم شود روی \n و خط جدید را با هر کاراکتری جایگزین کنید. جداکننده دیگری را می توان به جای \n استفاده کرد، اما فقط زمانی GNU sed استفاده می شود. هنگامی که \n در آخرین خط فایل وجود ندارد، GNU sed می تواند از چاپ جلوگیری کند \n. علاوه بر این، \n معمولاً به هر خروجی متوالی «sed» اضافه می‌شود.

یک فایل ایجاد کنید

در این مقاله به شما نشان خواهیم داد که چگونه از دستور sed برای جایگزینی \n با کاما استفاده کنید. برای دنبال کردن این آموزش، یک فایل متنی با نام ایجاد کنید Clients.txt با اطلاعات مشتری جدولی زیر.

شناسه نام پست الکترونیک تلفن
c01 دکتر رکیب rakib@gmail.com 01856233238
c02 مهر افروز meher@gmail.com 01733536342
c03 فکرالاحسن fakrul@gmail.com 01934737248
c04 هلال الدین helal@yahoo.com 01534895898
c05 نصرت جهان nusrat@hotmail.com 01866345254
پیشنهاد می‌کنیم بخوانید:  انبساط بادبند Bash

مثال 1: \n را با کاما با استفاده از -z جایگزین کنید

از گزینه -z برای تبدیل \n به کاراکتر تهی (\0) استفاده می شود. محتوای فایل در صورتی که حاوی هیچ کاراکتر تهی نباشد به عنوان یک خط در نظر گرفته می شود. دستور `sed` خط جدید را به کاراکتر تهی تبدیل می کند و با استفاده از اولین الگوی جستجو و جایگزینی، هر \n را با یک کاما جایگزین می کند. در اینجا، ‘g’ برای جستجوی جهانی \n استفاده می شود. با الگوی جستجو و جایگزینی دوم، آخرین کاما با \n جایگزین می شود.

$ گربه Clients.txt

$ sed -z ‘s/\n/,/g;s/,$/\n/’ Clients.txt

پس از اجرای دستورات خروجی زیر تولید خواهد شد.

روش جایگزینی خط جدید با کاما با استفاده از دستور sed

مثال 2: با استفاده از a، b، $، \n را با کاما جایگزین کنید! و N

با استفاده از دستور “sed” می توان برای جایگزینی \n با کاما استفاده کرد a، b، N و $!. اینجا، آ برای اضافه کردن وظایف استفاده می شود، ب برای شاخه‌بندی محتوا استفاده می‌شود، ن برای رفتن به خط بعدی استفاده می شود و $! برای جلوگیری از اعمال وظیفه جایگزینی به آخرین خط استفاده می شود. دستور جایگزین هر کدام خواهد شد \n با کاما به جز خط آخر.

$ گربه Clients.txt

$ sed ‘:a;N;$!ba;s/\n/,/g’ Clients.txt

پس از اجرای دستورات خروجی زیر تولید خواهد شد.

روش جایگزینی خط جدید با کاما با استفاده از دستور sedروش جایگزینی خط جدید با کاما با استفاده از دستور sed

مثال 3: \n را با کاما با استفاده از H، h، d، x و y جایگزین کنید

اگر می خواهید تعویض کنید \n) با یک کاما در یک فایل کوچک، می توان از دستور sed زیر استفاده کرد. اینجا، اچ برای الحاق آخرین خط به متن نگهدارنده استفاده می شود، 1h برای کپی کردن هر خط از فایل به متن نگهدارنده از خط اول استفاده می شود. $!d برای حذف تمام خطوط به جز آخرین خط استفاده می شود ایکس برای تبادل متن نگهدارنده و فضای الگو استفاده می شود و y برای جایگزینی هر کدام استفاده می شود \n در متن نگهدارنده با کاما.

$ گربه Clients.txt

پیشنهاد می‌کنیم بخوانید:  تفاوت: .bashrc و bash_profile چیست؟

$ sed ‘H;1h;$!d;x;y/\n/,/’ Clients.txt

پس از اجرای دستورات خروجی زیر تولید خواهد شد.

روش جایگزینی خط جدید با کاما با استفاده از دستور sedروش جایگزینی خط جدید با کاما با استفاده از دستور sed

مثال 4: \n را با کاما با -n، H، h، g و p جایگزین کنید.

می توان از دستور sed برای جایگزینی استفاده کرد \n با کاما با -n گزینه ای که از چاپ خودکار جلوگیری می کند. مانند مثال قبل، اچ در اینجا برای الحاق آخرین خط به متن نگهدارنده استفاده می شود، 1 ساعت برای کپی کردن هر خط از فایل در متن نگهدارنده استفاده می شود، $ به خط آخر فایل اشاره دارد، g برای کپی کردن از متن نگهدارنده استفاده می شود و پ استفاده میشه برای print.

$ گربه Clients.txt

$ sed -n “H;1h;\${g;s/\n/,/g;p}” Clients.txt

پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد.

روش جایگزینی خط جدید با کاما با استفاده از دستور sedروش جایگزینی خط جدید با کاما با استفاده از دستور sed

مثال 5: \n را با کاما با استفاده از H، x، p جایگزین کنید

H، x و p در مثال های قبلی توضیح داده شده است. اولین عبارت جستجو و جایگزینی جایگزین هر کدام خواهد شد \n با کاما، و عبارت جستجو و جایگزینی دوم جایگزین کاما در ابتدای یک خط با فاصله خواهد شد.

$ گربه Clients.txt

$ sed -n ‘H;${x;s/\n/,/g;s/^,//;p;}’ Clients.txt

پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد.

روش جایگزینی خط جدید با کاما با استفاده از دستور sedروش جایگزینی خط جدید با کاما با استفاده از دستور sed

مثال 6: \n را با کاما با N و «cat» جایگزین کنید

دستور «cat» در اینجا برای ارسال محتوای فایل به دستور «sed» و ن برای انتقال به خط بعدی استفاده می شود.

$ گربه Clients.txt

$ گربه Clients.txt | sed ‘N;s/\n/,/’

پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد.

روش جایگزینی خط جدید با کاما با استفاده از دستور sedروش جایگزینی خط جدید با کاما با استفاده از دستور sed

نتیجه

برای انتقال داده ها از یک فرمت فایل به فرمت دیگر، ممکن است لازم باشد \n را با کاما جایگزین کنید. این نوع جایگزینی را می توان با استفاده از سایر دستورات لینوکس نیز انجام داد. بسیاری از گزینه های فرمان مانند H، N، h و x را می توان با دستور sed برای تکمیل این کار استفاده کرد. این آموزش به چندین روش برای استفاده از دستور «sed» برای جایگزینی \n با کاما می پردازد.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-31 07:05:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید