یک اسکریپت بش بنویسید که یک فایل متنی را بگیرد که هر خط شامل "نام فاصله امتیاز" است و خطوط را بر اساس امتیاز به ترتیب نزولی مرتب کند و نتیجه را در یک فایل خروجی ذخیره نماید.

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 در صورت نیاز به حذف تکراری‌ها نیز مفید است.

توسط پژوهشگر در 202 روز قبل ساعت 02:57
دسته بندی ها: Bash Scripting Bash Scripting for beginner
reyhaneh در 202 روز قبل ساعت 07:56

برای مرتب‌سازی خطوط بر اساس ستون دوم به‌صورت عددی و نزولی از دستور sort با گزینه‌های -k2 -n -r استفاده کنید و خروجی را به فایل خروجی هدایت کنید. اگر فایل دارای سرصفحه است، بدنه را جدا کرده و تنها بدنه را مرتب نمایید یا از ترکیب head و tail بهره ببرید. در صورت وجود جداکننده‌های غیر فاصله یا نام‌هایی که حاوی فاصله هستند، از گزینه -t برای تعیین جداکننده مناسب استفاده کنید یا با awk دقیقاً ستون دوم را استخراج کنید. برای حذف ردیف‌های تکراری نیز می‌توانید از گزینه -u استفاده کنید یا بعد از sort فیلتر مناسبی اضافه کنید.

گزارش

1 پاسخ

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

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