از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
حذف کاراکترها از رشته در Bash
سرفصلهای مطلب
گاهی اوقات، ممکن است لازم باشد کاراکترها را از یک رشته حذف کنید. دلیل هر چه که باشد، لینوکس ابزارهای مختلف داخلی و مفیدی را در اختیار شما قرار می دهد که به شما امکان می دهد کاراکترها را از یک رشته در Bash حذف کنید. این مقاله به شما نشان می دهد که چگونه از این ابزارها برای حذف کاراکترها از یک رشته استفاده کنید.
این مقاله روش انجام موارد زیر را پوشش می دهد:
- با استفاده از sed کاراکتر را از رشته حذف کنید
- با استفاده از awk کاراکتر را از رشته حذف کنید
- با استفاده از برش، کاراکتر را از رشته حذف کنید
- با استفاده از tr کاراکتر را از رشته حذف کنید
دستورات نشان داده شده در این مقاله در Ubuntu 20.04 Focal Fossa انجام شده است. همین دستورات را نیز می توان انجام داد روی سایر توزیع های لینوکس که ابزارهای فوق را در دسترس دارند. ما از برنامه پیش فرض Terminal برای اجرای دستورات استفاده خواهیم کرد. می توانید با استفاده از میانبر صفحه کلید Ctrl+Alt+T به برنامه ترمینال دسترسی داشته باشید.
حذف کاراکترها از رشته با استفاده از sed
Sed یک ابزار قدرتمند و مفید است که برای ویرایش جریان متن استفاده می شود. این یک ویرایشگر متن غیر تعاملی است که به شما امکان می دهد دستکاری های متنی اولیه را انجام دهید روی جریان های ورودی همچنین می توانید از sed برای حذف کاراکترهای ناخواسته از رشته ها استفاده کنید.
برای اهداف نمایشی، از یک رشته نمونه استفاده می کنیم و سپس آن را به دستور sed لوله می کنیم.
نویسه خاص را از رشته حذف کنید
با استفاده از sed می توانید یک کاراکتر خاص را از یک رشته حذف کنید. به عنوان مثال، برای حذف “h” از رشته “سلام حال شما چطور؟دستور این خواهد بود:
این فقط اولین رخداد ‘h’ در رشته را حذف می کند.
برای حذف تمام رخدادهای ‘h’ از رشته، از دستور زیر استفاده کنید:
جایی که g مخفف جهانی است. تمام رخدادهای ‘h’ در رشته را حذف می کند.
اولین کاراکتر را از رشته حذف کنید
برای حذف اولین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:
جایی که (.) دقیقاً با یک کاراکتر و (^) با هر کاراکتری در ابتدای رشته مطابقت دارد.
آخرین کاراکتر را از رشته حذف کنید
برای حذف آخرین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:
جایی که (.) دقیقاً با یک کاراکتر منطبق است و ($) با هر کاراکتری در انتهای رشته مطابقت دارد.
اولین و آخرین کاراکتر را از رشته حذف کنید
برای حذف اولین و آخرین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:
با استفاده از awk کاراکترها را از رشته حذف کنید
Awk یک زبان برنامه نویسی قدرتمند است که برای تطبیق الگو، همراه با پردازش متن استفاده می شود. Awk به شما امکان می دهد متن را به روش های مختلف فیلتر و تبدیل کنید. همچنین می توانید از awk برای حذف کاراکترها از رشته ها استفاده کنید.
برای اهداف نمایشی، از یک رشته نمونه استفاده می کنیم و سپس آن را به دستور awk لوله می کنیم.
اولین کاراکتر را از یک رشته حذف کنید
برای حذف اولین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:
جایی که (0$) کل رشته هدف و (2) موقعیت شروع کاراکتر است. دستور بالا کاراکتر اول، ‘h’، کاراکتر شماره ‘1’ را حذف می کند و رشته هدف را که با کاراکتر دوم، ‘e’ شروع می شود، برمی گرداند.
دو کاراکتر اول را از رشته حذف کنید
همچنین می توانید تعداد مشخصی از کاراکترها را از ابتدای یک رشته حذف کنید. به عنوان مثال، برای حذف دو کاراکتر اول از رشته “سلام حال شما چطور؟” دستور این خواهد بود:
دستور بالا دو کاراکتر اول، ‘he’ یا کاراکترهای ‘1 و 2’ را حذف میکند و رشته هدف را که با کاراکتر شماره ‘3’ یا ‘l’ شروع میشود، برمیگرداند.
آخرین کاراکتر را از رشته حذف کنید
برای حذف آخرین کاراکتر از “سلام حال شما چطور؟” دستور این خواهد بود:
جایی که طول ($0) -1 یعنی کسر کردن1از کل طول کاراکتر.
دستور بالا خواهد بود print رشته ای که با شماره کاراکتر شروع می شود1‘ تا طول ($0) -1 برای حذف آخرین کاراکتر
وجود دارد ‘19کاراکترهای ‘ (از جمله فاصله) در رشته بالا. این دستور با چاپ همه کاراکترها کار خواهد کرد که با کاراکتر شروع می شود.1“و تا شخصیت”18“در حین حذف آخرین کاراکتر”19.
دو کاراکتر آخر را از رشته حذف کنید
برای حذف دو کاراکتر آخر از “سلام حال شما چطور؟دستور این خواهد بود:
جایی که طول ($0) -2 یعنی کسر کردن2از کل طول کاراکتر.
دستور بالا خواهد بود print رشته ای که با شماره کاراکتر شروع می شود1“و تا عدد کاراکتر”طول ($0) -2برای حذف دو کاراکتر آخر رشته.
هر دو کاراکتر اول و آخر را از رشته حذف کنید
برای حذف اولین و آخرین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:
جایی که طول ($0) -2 یعنی کسر کردن2از کل طول کاراکتر.
دستور بالا خواهد بود print رشته ای که با شماره کاراکتر شروع می شود2“تا عدد کاراکتر”طول ($0) -2، برای حذف اولین و آخرین کاراکتر.
حذف کاراکتر از رشته با استفاده از برش
برش یک است command-line ابزاری که معمولا برای استخراج بخشی از متن از یک رشته یا فایل و print نتیجه به یک خروجی استاندارد می رسد. همچنین می توانید از این دستور برای حذف کاراکترها از یک رشته استفاده کنید.
برای اهداف نمایشی، از یک رشته نمونه استفاده می کنیم و سپس آن را به دستور cut لوله می کنیم.
اولین کاراکتر را از رشته حذف کنید
برای حذف اولین کاراکتر از رشته، “سلام حال شما چطور؟” دستور این خواهد بود:
این دستور خواهد بود print رشته، با کاراکتر دوم شروع می شود، در حالی که کاراکتر اول را حذف می کند.
چهار کاراکتر اول را از رشته حذف کنید
برای حذف چهار کاراکتر اول از رشته “سلام حال شما چطور؟” دستور این خواهد بود:
این دستور خواهد بود print رشته، از کاراکتر پنجم شروع می شود، در حالی که چهار کاراکتر اول را حذف می کند.
چاپ رشته بین نویسه های 2 و 5
به print رشته “سلام حال شما چطور؟” بین شخصیت دوم و پنجم، دستور این خواهد بود:
این دستور خواهد بود print رشته، از کاراکتر دوم شروع می شود و تا کاراکتر پنجم، در حالی که بقیه کاراکترهای آغاز و پایان را حذف می کند.
آخرین کاراکتر را از رشته حذف کنید
برای حذف آخرین کاراکتر از رشته “سلام حال شما چطور؟” استفاده کنید برش فرمان با دور، به شرح زیر است:
این دستور بدین صورت عمل می کند که ابتدا رشته را معکوس می کند، سپس کاراکتر اول را برش می دهد و در نهایت دوباره آن را برعکس می کند تا خروجی مورد نظر را به شما بدهد.
چهار کاراکتر آخر را از رشته حذف کنید
برای حذف چهار کاراکتر آخر از خط “سلام حال شما چطور؟” دستور این خواهد بود:
این دستور بدین صورت عمل می کند که ابتدا رشته را معکوس می کند، سپس چهار کاراکتر اول را برش می دهد و سپس دوباره آن را برعکس می کند تا خروجی مورد نظر را به شما بدهد.
اولین و آخرین کاراکترها را از رشته حذف کنید
برای حذف اولین و آخرین کاراکتر از رشته “سلام حال شما چطور؟” استفاده کنید برش فرمان با دور، به شرح زیر است:
این دستور بدین صورت عمل می کند که اولین کاراکتر را برش می دهد، سپس رشته را برعکس می کند و اولین کاراکتر آن را برش می دهد و سپس دوباره آن را برعکس می کند تا خروجی مورد نظر را به شما بدهد.
حذف کاراکتر از رشته با استفاده از tr
دستور tr (مخفف ترجمه) برای ترجمه، فشرده کردن و حذف کاراکترها از یک رشته استفاده می شود. همچنین می توانید از tr برای حذف کاراکترها از یک رشته استفاده کنید.
برای اهداف نمایشی، از یک رشته نمونه استفاده می کنیم و سپس آن را به دستور tr لوله می کنیم.
حذف همه اتفاقات شخصیت
با استفاده از دستور tr، میتوانید همه حروف کوچک یا بزرگ را از رشته خود حذف کنید. به عنوان مثال، برای حذف تمام رخدادهای کاراکتر کوچک ‘h’ از رشته، دستور به صورت زیر خواهد بود:
به طور مشابه، برای حذف تمام رخدادهای کاراکتر بزرگ «H» از رشته، دستور به صورت زیر خواهد بود:
همچنین می توانید از دنباله های تفسیر شده برای حذف حروف کوچک یا بزرگ استفاده کنید:
حذف همه مواردی که از حروف کوچک و بزرگ وجود دارد
شما همچنین می توانید همه موارد حروف کوچک و بزرگ را از یک رشته حذف کنید. به عنوان مثال، دستور زیر تمام رخدادهای کاراکتر ‘h’، کوچک و بزرگ را حذف می کند.
حذف همه ظهور شخصیت ها در یک محدوده خاص
برای حذف همه تکرار کاراکترها از یک رشته در محدوده خاص ‘dh’، دستور به صورت زیر خواهد بود:
این دستور همه کاراکترهای محدوده ‘d-h’ (d,e,f,g,h) را در رشته حذف می کند.
نتیجه
در لینوکس، همیشه بیش از یک راه برای انجام یک کار ساده وجود دارد. همین امر در مورد حذف کاراکترها از یک رشته صادق است. این مقاله چهار راه مختلف برای انجام این کار را به همراه چند مثال برای حذف کاراکترهای ناخواسته از یک رشته به شما نشان داد. تصمیم گیری اینکه از کدام ابزار استفاده شود بستگی دارد روی ترجیحات شما و مهمتر از آن روی آنچه می خواهید به دست آورید
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 08:23:10