از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Bash آخرین x نویسه ها را از رشته حذف کند؟
سرفصلهای مطلب
چندین راه یا دستور در لینوکس وجود دارد که ممکن است برای حذف آخرین کاراکترها از مقدار رشته در آن استفاده کنیم bashاز جمله “کات”، “sed” “تمجید”، “awk” و دیگران. “%” و “؟” عملگرها همچنین می توانند برای حذف عنصر پایانی از یک رشته استفاده شوند. با استفاده از دستور “cut” در bash، همچنین می توانیم یک کاراکتر خاص را از رشته ای که می خواهیم حذف کنیم حذف کنیم. در این مقاله، تکنیکهای مختلفی را برای حذف عناصر از دنبالهها نشان میدهیم.
مثال شماره 1: حذف آخرین کاراکترها از یک رشته در Bash
در این مثال از “%” و “?” استفاده خواهیم کرد. نمادها در دستور حذف کاراکترهای نهایی از یک رشته در bash. قبل از استفاده از این نمادها در دستورات، ابتدا مطمئن خواهیم شد که می دانید آنها چند کاراکتر آخر رشته را حذف می کنند و تعداد کاراکترها را مطابق با سناریو تنظیم می کنند. بسته به روی چیزی که میخواهیم حذف کنیم، میتوانیم آخرین بخشهای رشته را به چند روش قطع کنیم.
اجازه دهید اکنون شروع به اجرای دستور حذف آخرین کاراکترها از یک رشته و نمایش خروجی استاندارد در رشته کنیم terminal پنجره متغیر کلمه کلیدی در اولین مورد استفاده قرار می گیرد و رشته لیست به آن اختصاص می یابد. که در bash، یک متغیر می تواند یک عدد، یک کلمه خاص یا مجموعه ای از کاراکترها را ذخیره کند. شما می توانید یک متغیر را با دادن یک مقدار به مرجع آن بدون نیاز به اعلام آن بسازید. اگر می خواهید داده ها را از یک متغیر بخوانید، باید قبل از نام متغیر از علامت “$” استفاده کنید.
مقدار رشته ای که داریم “I Love Programming Languages” است. بنابراین، پس از تایپ متغیر، باید رشته را در داخل کاماهای معکوس اضافه کنیم. در دستور ما هیچ فاصله ای ندادیم. در این خط، رشته شامل چهار کلمه است. و در این قسمت قصد داریم کلمه آخر یعنی زبان ها را حذف کنیم. سپس در خط زیر از عبارت “echo” و به دنبال آن علامت دلار “$” استفاده می کنیم. در داخل echo، از براکتهای فرفری و در داخل براکتهای فرفری، رشتهای را که در «متغیر» ذخیره میشود به عنوان آرگومان عبور میدهیم. سپس، از نماد “%” برای حذف آخرین کاراکترها از رشته و به دنبال آن نماد “?” استفاده می کنیم. برای نشان دادن چند کاراکتر آخر که می خواهیم حذف کنیم. در نتیجه کلمه نه حرفی “زبان” را از این خط حذف می کنیم. بنابراین پس از نماد درصد، 9 علامت سوال وارد می کنیم.
Linux@linux:~$ اکو ${variable%؟؟؟؟؟؟؟؟؟}
همانطور که در تصویر زیر مشاهده می کنید، پس از اجرای این دستور، نتیجه بدون کلمه “languages” ارائه می شود. مقدار رشته نمایش داده شده اکنون سه کلمه “ILoveProgramming” است، پس از کلمات فاصله ای وجود ندارد زیرا در مقدار داده شده هیچ فاصله ای وجود ندارد.
حال، در بخش بعدی، چند کاراکتر اول یا اولین کلمه را با استفاده از نماد “#” که برای حذف کاراکترها از رشته ها در ابتدا استفاده می شود، از رشته حذف می کنیم. بنابراین، برای این، ما قصد داریم از همان دستور استفاده کنیم. ابتدا رشته “I Am Going To USA” را در داخل کاماهای معکوس قرار می دهیم که در “متغیر” ایجاد شده ذخیره می شود. سپس در مرحله زیر از دستور “echo” و در داخل آن از علامت “$” استفاده می کنیم.
بعد، از براکت های فرفری، در داخل این براکت ها استفاده می کنیم، زیرا رشته در آنجا ذخیره می شود. بنابراین، “متغیر” را پاس می کنیم و سپس از نماد هش “#” استفاده می کنیم. پس از آن، چهار “؟” را تایپ می کنیم. علامت سوال، که چهار کاراکتر اول را از رشته حذف می کند. در اینجا فضا نیز یک شخصیت در نظر گرفته می شود.
Linux@linux:~$ اکو ${variable#????}
اکنون که دو کلمه اول رشته، “I Am” حذف شده است، می توانید در خروجی مشاهده کنید که سه کلمه باقی مانده از عبارت Going to USA را نمایش می دهد. ما از چهار علامت سوال در خروجی بالا استفاده کردیم زیرا بین این دو کلمه فاصله وجود دارد و فاصله ها در این زمینه به عنوان کاراکتر در نظر گرفته می شوند بنابراین در مجموع کاراکترهای حذف شده چهار هستند.
مثال شماره 2: استفاده از جایگزینی پارامتر Bash برای حذف آخرین کاراکترها از یک رشته.
در این قسمت با مشخص کردن طول رشته، آخرین کلمه را از آن حذف می کنیم bash. میتوانیم از عملیات # برای تعیین طول یک رشته استفاده کنیم. برای انجام این کار، ابتدا باید نام متغیر را در کاماهای معکوس بپیچیم و قبل از استفاده از عملیات “#” طول رشته را تعیین کنیم. در نتیجه، ما می توانیم طول متغیر رشته در یونیکس را با استفاده از عملگر “#” تعیین کنیم.
حال در دستور ابتدا از متغیر ایجاد شده استفاده می کنیم و مقدار رشته را در داخل کاماهای معکوس قرار می دهیم که عبارت است از “Keep it up”. در مجموع سه کلمه در مقدار وجود دارد. سپس در خط بعدی پارامتر “length” را پاس می کنیم و آرگومان “variable” را ذخیره می کنیم که در آن مقدار رشته در آن ذخیره می شود اما قبل از ارسال “متغیر” باید از “$” قبل از استفاده از براکت های فرفری استفاده کنیم. و در داخل این براکت باید از عملگر “#” استفاده کنیم.
سپس، روی در خط زیر، دستور “echo” را تایپ می کنیم، به دنبال آن علامت دلار ($)، براکت های فرفری، پارامتر “متغیر”، دو نقطه دو نقطه (“::”)، طول آرگومان، و تعداد کاراکترها ما باید پاک کنیم که دو و به شکل نماد “-2” است.
Linux@linux:~$ طول= ${#variable#}
Linux@linux:~$ اکو ${variable: : length -2}
از آنجایی که طول کاراکتر دو را ارائه کردیم، بنابراین دو کاراکتر آخر رشته را پاک کرد و خروجی نمایش داده شده حاوی مقدار رشته “Keep it” بود.
مثال شماره 3: استفاده از دستور Cut
که در bash، از دستور cut می توان برای حذف کلمات یا کاراکترهای خاص از رشته ها یا فایل ها استفاده کرد. اجازه دهید از دستور cut برای این کار استفاده کنیم. ابتدا “echo” را تایپ کنید، سپس از کاماهای معکوس برای ارسال مقدار رشته “I Love My Mother” استفاده کنید، سپس از نماد نوار “|” استفاده کنید. سپس عبارت cut را تایپ کنید، سپس از -c برای برش کاراکتر استفاده کنید و سپس محدوده کاراکتری را که میخواهیم نمایش دهیم را ارائه کنید روی خروجی. در این مورد، ما از محدوده “1 تا 10” استفاده کردیم که ده کاراکتر اول از مقدار رشته را در اینجا نشان می دهد، فضاها بخشی از کاراکترها هستند.
همانطور که در تصویر زیر مشاهده می کنید زمانی که این دستور را اجرا می کنیم، فقط کاراکترهای اولیه از جمله فاصله ها را نمایش می دهد و کاراکترهای باقی مانده که آخرین کاراکترها حذف شده اند. مقادیر رشته حاوی “I Love My” در نتیجه محدوده “1 تا 10” که ما ارائه کردیم نمایش داده شد.
مثال 4: با استفاده از دستور sed
در این بخش از دستور sed برای حذف چند کاراکتر آخر رشته استفاده می کنیم. تابع sed دارای سه کاربرد عمده در bash اسکریپت: نوشتن در stdout، پاک کردن محتوا و تغییر یک رشته خاص. ما از همان دستور مثال قبلی استفاده خواهیم کرد اما این بار مقدار رشته بدون هیچ فاصله ای به “I love coding” تغییر می کند.
بعد، قسمت بعد از نماد نوار “|” تغییر خواهد کرد زیرا این قسمت از دستور “sed” استفاده می کند، بنابراین “sed” را در قسمت تایپ کنید terminal. در نهایت از کاما معکوس استفاده می کنیم و در داخل آن از “s/.$/” استفاده می کنیم. این کلمه انتهای رشته را حذف می کند. همچنین می توانید یک کاراکتر خاص را با جایگزین کردن “$” در دستوری که می خواهید کاراکتر را از آن حذف کنید، از رشته حذف کنید.
کاراکتر “g” آخرین کاراکتر مقدار از خروجی حذف شده است که اکنون مقدار رشته “Ilovecodin” را نشان می دهد.
نتیجه
در این مقاله روش استفاده را بررسی کرده ایم bash برای حذف یک کاراکتر از یک خط و روش حذف آخرین حرف از یک رشته داده شده. با استفاده از “%” و “?” عملگرها، در مثال اول کلمه آخر را از رشته حذف کردیم. در مثال دوم، طول کاراکترهایی را که میخواستیم از مقدار رشته در دستور حذف کنیم، ارائه کردیم. سپس، در مثال سوم، تعداد کاراکترهایی را که میخواهیم نمایش دهیم، با استفاده از دستور «cut» ارائه کردیم و آخرین کلمات را حذف کردیم. در نهایت، در بخش پایانی، تابع “sed” را پوشش دادیم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 13:35:10