یک اسکریپت bash بنویسید که متن ورودی را دریافت کند، تمام حروف انگلیسی کوچک را به حروف بزرگ تبدیل کند و همهٔ فاصله‌های متوالی را به یک فاصلهٔ تکی کاهش دهد.

10.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:34

0.0

برای حل این مسئله از دستور tr استفاده کنید: ابتدا با tr '[:lower:]' '[:upper:]' حروف کوچک را به بزرگ تبدیل کنید و سپس با tr -s ' ' فاصله‌های متوالی را فشرده کنید؛ این دو را با لوله (|) به هم متصل کنید تا اسکریپت از stdin یا فایل ورودی کار کند (مثلاً cat file | ./script یا ./script < file). توجه داشته باشید که برای کار با کاراکترهای غیر ASCII ممکن است نیاز به تنظیم locale باشد.

توسط پژوهشگر در 201 روز قبل ساعت 03:34
دسته بندی ها: Bash Scripting Bash Scripting for beginner
reyhaneh در 201 روز قبل ساعت 05:59

برای پایداری با متن‌های دارای کاراکترهای غیر ASCII، LC_ALL=C را تنظیم کنید تا فقط حروف انگلیسی تغییر کنند. اگر قصد دارید توالی فضاها را فقط داخل هر خط فشرده کنید، از tr -s ' ' بعد از تبدیل حروف به بزرگ استفاده کنید تا کاراکترهای تب یا newline دستخوش تغییر نشوند. ورودی می‌تواند از stdin دریافت شود یا از فایل با استفاده از redirection یا لوله؛ این کار باعث می‌شود اسکریپت در هر دو حالت کار کند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری