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

سرور مجازی NVMe

حذف کاراکترها از رشته در Bash

0 3
زمان لازم برای مطالعه: 7 دقیقه






گاهی اوقات، ممکن است لازم باشد کاراکترها را از یک رشته حذف کنید. دلیل هر چه که باشد، لینوکس ابزارهای مختلف داخلی و مفیدی را در اختیار شما قرار می دهد که به شما امکان می دهد کاراکترها را از یک رشته در Bash حذف کنید. این مقاله به شما نشان می دهد که چگونه از این ابزارها برای حذف کاراکترها از یک رشته استفاده کنید.

این مقاله روش انجام موارد زیر را پوشش می دهد:

  • با استفاده از sed کاراکتر را از رشته حذف کنید
  • با استفاده از awk کاراکتر را از رشته حذف کنید
  • با استفاده از برش، کاراکتر را از رشته حذف کنید
  • با استفاده از tr کاراکتر را از رشته حذف کنید

دستورات نشان داده شده در این مقاله در Ubuntu 20.04 Focal Fossa انجام شده است. همین دستورات را نیز می توان انجام داد روی سایر توزیع های لینوکس که ابزارهای فوق را در دسترس دارند. ما از برنامه پیش فرض Terminal برای اجرای دستورات استفاده خواهیم کرد. می توانید با استفاده از میانبر صفحه کلید Ctrl+Alt+T به برنامه ترمینال دسترسی داشته باشید.

حذف کاراکترها از رشته با استفاده از sed

Sed یک ابزار قدرتمند و مفید است که برای ویرایش جریان متن استفاده می شود. این یک ویرایشگر متن غیر تعاملی است که به شما امکان می دهد دستکاری های متنی اولیه را انجام دهید روی جریان های ورودی همچنین می توانید از sed برای حذف کاراکترهای ناخواسته از رشته ها استفاده کنید.

برای اهداف نمایشی، از یک رشته نمونه استفاده می کنیم و سپس آن را به دستور sed لوله می کنیم.

نویسه خاص را از رشته حذف کنید

با استفاده از sed می توانید یک کاراکتر خاص را از یک رشته حذف کنید. به عنوان مثال، برای حذف “h” از رشته “سلام حال شما چطور؟دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | sed ‘s/h//’

این فقط اولین رخداد ‘h’ در رشته را حذف می کند.
نویسه خاص را از String1 حذف کنید

برای حذف تمام رخدادهای ‘h’ از رشته، از دستور زیر استفاده کنید:

$ echo “سلام حال شما چطور؟” | sed ‘s/h//g’

جایی که g مخفف جهانی است. تمام رخدادهای ‘h’ در رشته را حذف می کند.
نویسه خاص را از String2 حذف کنیدنویسه خاص را از String2 حذف کنید

اولین کاراکتر را از رشته حذف کنید

برای حذف اولین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | sed ‘s/^.//’

جایی که (.) دقیقاً با یک کاراکتر و (^) با هر کاراکتری در ابتدای رشته مطابقت دارد.
اولین کاراکتر را از رشته حذف کنیداولین کاراکتر را از رشته حذف کنید

آخرین کاراکتر را از رشته حذف کنید

برای حذف آخرین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | sed ‘s/.$//’

جایی که (.) دقیقاً با یک کاراکتر منطبق است و ($) با هر کاراکتری در انتهای رشته مطابقت دارد.
آخرین کاراکتر را از رشته حذف کنیدآخرین کاراکتر را از رشته حذف کنید

پیشنهاد می‌کنیم بخوانید:  دستور Bc در اسکریپت های Bash

اولین و آخرین کاراکتر را از رشته حذف کنید

برای حذف اولین و آخرین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | sed ‘s/^.//;s/.$//’

اولین و آخرین کاراکتر را از رشته حذف کنیداولین و آخرین کاراکتر را از رشته حذف کنید

با استفاده از awk کاراکترها را از رشته حذف کنید

Awk یک زبان برنامه نویسی قدرتمند است که برای تطبیق الگو، همراه با پردازش متن استفاده می شود. Awk به شما امکان می دهد متن را به روش های مختلف فیلتر و تبدیل کنید. همچنین می توانید از awk برای حذف کاراکترها از رشته ها استفاده کنید.

برای اهداف نمایشی، از یک رشته نمونه استفاده می کنیم و سپس آن را به دستور awk لوله می کنیم.

اولین کاراکتر را از یک رشته حذف کنید

برای حذف اولین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | بیخیال ‘{ print substr( $0, 2 ) }’

جایی که (0$) کل رشته هدف و (2) موقعیت شروع کاراکتر است. دستور بالا کاراکتر اول، ‘h’، کاراکتر شماره ‘1’ را حذف می کند و رشته هدف را که با کاراکتر دوم، ‘e’ شروع می شود، برمی گرداند.
اولین کاراکتر را از یک رشته حذف کنیداولین کاراکتر را از یک رشته حذف کنید

دو کاراکتر اول را از رشته حذف کنید

همچنین می توانید تعداد مشخصی از کاراکترها را از ابتدای یک رشته حذف کنید. به عنوان مثال، برای حذف دو کاراکتر اول از رشته “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | بیخیال ‘{ print substr ($0, 3 ) }’

دستور بالا دو کاراکتر اول، ‘he’ یا کاراکترهای ‘1 و 2’ را حذف می‌کند و رشته هدف را که با کاراکتر شماره ‘3’ یا ‘l’ شروع می‌شود، برمی‌گرداند.
دو کاراکتر اول را از رشته حذف کنیددو کاراکتر اول را از رشته حذف کنید

آخرین کاراکتر را از رشته حذف کنید

برای حذف آخرین کاراکتر از “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | بیخیال ‘{ print substr($0, 1, length($0)-1 }’

جایی که طول ($0) -1 یعنی کسر کردن1از کل طول کاراکتر.

دستور بالا خواهد بود print رشته ای که با شماره کاراکتر شروع می شود1‘ تا طول ($0) -1 برای حذف آخرین کاراکتر

وجود دارد ‘19کاراکترهای ‘ (از جمله فاصله) در رشته بالا. این دستور با چاپ همه کاراکترها کار خواهد کرد که با کاراکتر شروع می شود.1“و تا شخصیت”18“در حین حذف آخرین کاراکتر”19.

rmv آخرین char frm رشتهrmv آخرین char frm رشته

دو کاراکتر آخر را از رشته حذف کنید

برای حذف دو کاراکتر آخر از “سلام حال شما چطور؟دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | بیخیال ‘{ print substr($0, 1, length($0)-2 }’

جایی که طول ($0) -2 یعنی کسر کردن2از کل طول کاراکتر.

دستور بالا خواهد بود print رشته ای که با شماره کاراکتر شروع می شود1“و تا عدد کاراکتر”طول ($0) -2برای حذف دو کاراکتر آخر رشته.
دو کاراکتر آخر را از رشته حذف کنیددو کاراکتر آخر را از رشته حذف کنید

هر دو کاراکتر اول و آخر را از رشته حذف کنید

برای حذف اولین و آخرین کاراکتر از رشته “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | بیخیال ‘{print substr($0, 2, length($0) – 2)}’

جایی که طول ($0) -2 یعنی کسر کردن2از کل طول کاراکتر.

دستور بالا خواهد بود print رشته ای که با شماره کاراکتر شروع می شود2“تا عدد کاراکتر”طول ($0) -2، برای حذف اولین و آخرین کاراکتر.

هر دو کاراکتر اول و آخر را از رشته حذف کنیدهر دو کاراکتر اول و آخر را از رشته حذف کنید

حذف کاراکتر از رشته با استفاده از برش

برش یک است command-line ابزاری که معمولا برای استخراج بخشی از متن از یک رشته یا فایل و print نتیجه به یک خروجی استاندارد می رسد. همچنین می توانید از این دستور برای حذف کاراکترها از یک رشته استفاده کنید.

برای اهداف نمایشی، از یک رشته نمونه استفاده می کنیم و سپس آن را به دستور cut لوله می کنیم.

اولین کاراکتر را از رشته حذف کنید

برای حذف اولین کاراکتر از رشته، “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | برش 2

این دستور خواهد بود print رشته، با کاراکتر دوم شروع می شود، در حالی که کاراکتر اول را حذف می کند.
rmv cut -crmv cut -c

پیشنهاد می‌کنیم بخوانید:  چگونه یک رشته را در یک فایل در Bash جایگزین کنیم

چهار کاراکتر اول را از رشته حذف کنید

برای حذف چهار کاراکتر اول از رشته “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | برش 5

این دستور خواهد بود print رشته، از کاراکتر پنجم شروع می شود، در حالی که چهار کاراکتر اول را حذف می کند.
چهار کاراکتر اول را از رشته حذف کنیدچهار کاراکتر اول را از رشته حذف کنید

چاپ رشته بین نویسه های 2 و 5

به print رشته “سلام حال شما چطور؟” بین شخصیت دوم و پنجم، دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | برش 25

این دستور خواهد بود print رشته، از کاراکتر دوم شروع می شود و تا کاراکتر پنجم، در حالی که بقیه کاراکترهای آغاز و پایان را حذف می کند.
rmv 2nd و 5th c2rmv 2nd و 5th c2

آخرین کاراکتر را از رشته حذف کنید

برای حذف آخرین کاراکتر از رشته “سلام حال شما چطور؟” استفاده کنید برش فرمان با دور، به شرح زیر است:

$ echo “سلام حال شما چطور؟” | دور | برش -c2- | دور

این دستور بدین صورت عمل می کند که ابتدا رشته را معکوس می کند، سپس کاراکتر اول را برش می دهد و در نهایت دوباره آن را برعکس می کند تا خروجی مورد نظر را به شما بدهد.
02 آخرین کاراکتر را از رشته حذف کنید02 آخرین کاراکتر را از رشته حذف کنید

چهار کاراکتر آخر را از رشته حذف کنید

برای حذف چهار کاراکتر آخر از خط “سلام حال شما چطور؟” دستور این خواهد بود:

$ echo “سلام حال شما چطور؟” | دور | برش -c5- | دور

این دستور بدین صورت عمل می کند که ابتدا رشته را معکوس می کند، سپس چهار کاراکتر اول را برش می دهد و سپس دوباره آن را برعکس می کند تا خروجی مورد نظر را به شما بدهد.
rmv چهار کاراکتر آخرrmv چهار کاراکتر آخر

اولین و آخرین کاراکترها را از رشته حذف کنید

برای حذف اولین و آخرین کاراکتر از رشته “سلام حال شما چطور؟” استفاده کنید برش فرمان با دور، به شرح زیر است:

$ echo “سلام دنیا!” | برش -c2- | دور | برش -c2- |دور

این دستور بدین صورت عمل می کند که اولین کاراکتر را برش می دهد، سپس رشته را برعکس می کند و اولین کاراکتر آن را برش می دهد و سپس دوباره آن را برعکس می کند تا خروجی مورد نظر را به شما بدهد.
rmv اول و آخرrmv اول و آخر

حذف کاراکتر از رشته با استفاده از tr

دستور tr (مخفف ترجمه) برای ترجمه، فشرده کردن و حذف کاراکترها از یک رشته استفاده می شود. همچنین می توانید از tr برای حذف کاراکترها از یک رشته استفاده کنید.

برای اهداف نمایشی، از یک رشته نمونه استفاده می کنیم و سپس آن را به دستور tr لوله می کنیم.

حذف همه اتفاقات شخصیت

با استفاده از دستور tr، می‌توانید همه حروف کوچک یا بزرگ را از رشته خود حذف کنید. به عنوان مثال، برای حذف تمام رخدادهای کاراکتر کوچک ‘h’ از رشته، دستور به صورت زیر خواهد بود:

$ echo “سلام حال شما چطور؟” | tr ساعت

حذف همه اتفاقات 01حذف همه اتفاقات 01

به طور مشابه، برای حذف تمام رخدادهای کاراکتر بزرگ «H» از رشته، دستور به صورت زیر خواهد بود:

$ echo “سلام حال شما چطور؟” | tr اچ

همچنین می توانید از دنباله های تفسیر شده برای حذف حروف کوچک یا بزرگ استفاده کنید:

$ echo “سلام حال شما چطور؟”| tr [:upper:]

وقوع کمتروقوع کمتر

$ echo “سلام حال شما چطور؟”| tr [:lower:]

رخدادهای بالارخدادهای بالا

حذف همه مواردی که از حروف کوچک و بزرگ وجود دارد

شما همچنین می توانید همه موارد حروف کوچک و بزرگ را از یک رشته حذف کنید. به عنوان مثال، دستور زیر تمام رخدادهای کاراکتر ‘h’، کوچک و بزرگ را حذف می کند.

$ echo “سلام حال شما چطور؟” | tr ‘hH’

بالا و پایین رخ می دهدبالا و پایین رخ می دهد

حذف همه ظهور شخصیت ها در یک محدوده خاص

برای حذف همه تکرار کاراکترها از یک رشته در محدوده خاص ‘dh’، دستور به صورت زیر خواهد بود:

$ echo “سلام حال شما چطور؟” | tr ‘dh’

این دستور همه کاراکترهای محدوده ‘d-h’ (d,e,f,g,h) را در رشته حذف می کند.
محدوده خاص رخدادهامحدوده خاص رخدادها

نتیجه

در لینوکس، همیشه بیش از یک راه برای انجام یک کار ساده وجود دارد. همین امر در مورد حذف کاراکترها از یک رشته صادق است. این مقاله چهار راه مختلف برای انجام این کار را به همراه چند مثال برای حذف کاراکترهای ناخواسته از یک رشته به شما نشان داد. تصمیم گیری اینکه از کدام ابزار استفاده شود بستگی دارد روی ترجیحات شما و مهمتر از آن روی آنچه می خواهید به دست آورید

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

زمان انتشار: 1402-12-31 08:23:10

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

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

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