یک اسکریپت bash بنویسید که متن ورودی را دریافت کند، تمام حروف انگلیسی کوچک را به حروف بزرگ تبدیل کند و همهٔ فاصلههای متوالی را به یک فاصلهٔ تکی کاهش دهد.
10.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:34 0.0
برای حل این مسئله از دستور tr استفاده کنید: ابتدا با tr '[:lower:]' '[:upper:]' حروف کوچک را به بزرگ تبدیل کنید و سپس با tr -s ' ' فاصلههای متوالی را فشرده کنید؛ این دو را با لوله (|) به هم متصل کنید تا اسکریپت از stdin یا فایل ورودی کار کند (مثلاً cat file | ./script یا ./script < file). توجه داشته باشید که برای کار با کاراکترهای غیر ASCII ممکن است نیاز به تنظیم locale باشد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پایداری با متنهای دارای کاراکترهای غیر ASCII، LC_ALL=C را تنظیم کنید تا فقط حروف انگلیسی تغییر کنند. اگر قصد دارید توالی فضاها را فقط داخل هر خط فشرده کنید، از tr -s ' ' بعد از تبدیل حروف به بزرگ استفاده کنید تا کاراکترهای تب یا newline دستخوش تغییر نشوند. ورودی میتواند از stdin دریافت شود یا از فایل با استفاده از redirection یا لوله؛ این کار باعث میشود اسکریپت در هر دو حالت کار کند.
گزارش