یک اسکریپت بش بنویسید که یک فایل متنی را بگیرد که هر خط شامل "نام فاصله امتیاز" است و خطوط را بر اساس امتیاز به ترتیب نزولی مرتب کند و نتیجه را در یک فایل خروجی ذخیره نماید.
7.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:57 0.0
برای حل این مسئله از دستور sort در یک اسکریپت Bash استفاده کنید؛ با گزینه -k2 مشخص کنید که مرتبسازی بر پایه ستون دوم انجام شود و با -n برای مقایسه عددی و -r برای ترتیب نزولی استفاده کنید. اسکریپت میتواند نام فایل ورودی و خروجی را از آرگومانهای خط دستور بپذیرد (مثلاً ./script.sh input.txt output.txt) و خروجی sort را به فایل خروجی هدایت کند. اگر فایل دارای هدر باشد، میتوانید با head و tail هدر را جدا کنید و تنها بدنه را مرتب نمایید (مثلاً head -n1 file > out && tail -n +2 file | sort -k2 -n -r >> out). استفاده از -t برای مشخص کردن جداکنندههای غیر از فاصله و -u در صورت نیاز به حذف تکراریها نیز مفید است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای مرتبسازی خطوط بر اساس ستون دوم بهصورت عددی و نزولی از دستور sort با گزینههای -k2 -n -r استفاده کنید و خروجی را به فایل خروجی هدایت کنید. اگر فایل دارای سرصفحه است، بدنه را جدا کرده و تنها بدنه را مرتب نمایید یا از ترکیب head و tail بهره ببرید. در صورت وجود جداکنندههای غیر فاصله یا نامهایی که حاوی فاصله هستند، از گزینه -t برای تعیین جداکننده مناسب استفاده کنید یا با awk دقیقاً ستون دوم را استخراج کنید. برای حذف ردیفهای تکراری نیز میتوانید از گزینه -u استفاده کنید یا بعد از sort فیلتر مناسبی اضافه کنید.
گزارش