از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش جایگزینی خط جدید با کاما با استفاده از دستور sed
سرفصلهای مطلب
هر کاراکتر یا رشته ای را می توان با استفاده از دستور 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 |
مثال 1: \n را با کاما با استفاده از -z جایگزین کنید
از گزینه -z برای تبدیل \n به کاراکتر تهی (\0) استفاده می شود. محتوای فایل در صورتی که حاوی هیچ کاراکتر تهی نباشد به عنوان یک خط در نظر گرفته می شود. دستور `sed` خط جدید را به کاراکتر تهی تبدیل می کند و با استفاده از اولین الگوی جستجو و جایگزینی، هر \n را با یک کاما جایگزین می کند. در اینجا، ‘g’ برای جستجوی جهانی \n استفاده می شود. با الگوی جستجو و جایگزینی دوم، آخرین کاما با \n جایگزین می شود.
$ sed -z ‘s/\n/,/g;s/,$/\n/’ Clients.txt
پس از اجرای دستورات خروجی زیر تولید خواهد شد.
مثال 2: با استفاده از a، b، $، \n را با کاما جایگزین کنید! و N
با استفاده از دستور “sed” می توان برای جایگزینی \n با کاما استفاده کرد a، b، N و $!. اینجا، آ برای اضافه کردن وظایف استفاده می شود، ب برای شاخهبندی محتوا استفاده میشود، ن برای رفتن به خط بعدی استفاده می شود و $! برای جلوگیری از اعمال وظیفه جایگزینی به آخرین خط استفاده می شود. دستور جایگزین هر کدام خواهد شد \n با کاما به جز خط آخر.
$ sed ‘:a;N;$!ba;s/\n/,/g’ Clients.txt
پس از اجرای دستورات خروجی زیر تولید خواهد شد.
مثال 3: \n را با کاما با استفاده از H، h، d، x و y جایگزین کنید
اگر می خواهید تعویض کنید \n) با یک کاما در یک فایل کوچک، می توان از دستور sed زیر استفاده کرد. اینجا، اچ برای الحاق آخرین خط به متن نگهدارنده استفاده می شود، 1h برای کپی کردن هر خط از فایل به متن نگهدارنده از خط اول استفاده می شود. $!d برای حذف تمام خطوط به جز آخرین خط استفاده می شود ایکس برای تبادل متن نگهدارنده و فضای الگو استفاده می شود و y برای جایگزینی هر کدام استفاده می شود \n در متن نگهدارنده با کاما.
$ sed ‘H;1h;$!d;x;y/\n/,/’ Clients.txt
پس از اجرای دستورات خروجی زیر تولید خواهد شد.
مثال 4: \n را با کاما با -n، H، h، g و p جایگزین کنید.
می توان از دستور sed برای جایگزینی استفاده کرد \n با کاما با -n گزینه ای که از چاپ خودکار جلوگیری می کند. مانند مثال قبل، اچ در اینجا برای الحاق آخرین خط به متن نگهدارنده استفاده می شود، 1 ساعت برای کپی کردن هر خط از فایل در متن نگهدارنده استفاده می شود، $ به خط آخر فایل اشاره دارد، g برای کپی کردن از متن نگهدارنده استفاده می شود و پ استفاده میشه برای print.
$ sed -n “H;1h;\${g;s/\n/,/g;p}” Clients.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد.
مثال 5: \n را با کاما با استفاده از H، x، p جایگزین کنید
H، x و p در مثال های قبلی توضیح داده شده است. اولین عبارت جستجو و جایگزینی جایگزین هر کدام خواهد شد \n با کاما، و عبارت جستجو و جایگزینی دوم جایگزین کاما در ابتدای یک خط با فاصله خواهد شد.
$ sed -n ‘H;${x;s/\n/,/g;s/^,//;p;}’ Clients.txt
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد.
مثال 6: \n را با کاما با N و «cat» جایگزین کنید
دستور «cat» در اینجا برای ارسال محتوای فایل به دستور «sed» و ن برای انتقال به خط بعدی استفاده می شود.
$ گربه Clients.txt | sed ‘N;s/\n/,/’
پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد.
نتیجه
برای انتقال داده ها از یک فرمت فایل به فرمت دیگر، ممکن است لازم باشد \n را با کاما جایگزین کنید. این نوع جایگزینی را می توان با استفاده از سایر دستورات لینوکس نیز انجام داد. بسیاری از گزینه های فرمان مانند H، N، h و x را می توان با دستور sed برای تکمیل این کار استفاده کرد. این آموزش به چندین روش برای استفاده از دستور «sed» برای جایگزینی \n با کاما می پردازد.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 07:05:03