یک اسکریپت Bash بنویسید که یک فایل CSV فروش با ستونهای date,product,quantity,price را خوانده، برای هر ردیف ستون جدید total = quantity * price اضافه کند و خروجی را در یک CSV جدید ذخیره کرده و همزمان گزارشی از مجموع فروش (sum of total) برای هر محصول تولید کند.
9.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:57 0.0
از ابزارهای استاندارد خط فرمان مثل awk برای پردازش CSV استفاده کنید: در awk مقداردهی FS="," و OFS="," کرده، برای سطر اول هدر را چاپ کنید و برای سطرهای بعدی total را با محاسبه qty*price اضافه نمایید (از printf برای قالبدهی اعداد استفاده کنید). برای گزارش تجمیعی میتوانید داخل همان اسکریپت awk از یک آرایه انجمنی استفاده کنید تا مجموع total را به ازای هر product جمعآوری کند و در END خروجی گزارش را چاپ یا با sort مرتب کند. نکات: مراقب هدر باشید (NR==1)، در صورت وجود اعشار از format مناسب برای نمایش استفاده کنید و خروجیها را به فایلهای جداگانه هدایت نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این کار با awk قابل انجام است تا فایل CSV فروش را بخواند، ستون total را محاسبه کند و خروجی CSV جدید به همراه گزارشی از مجموع فروش هر محصول تولید کند. فرض کنید فیلدهای عددی بدون کاراکتر اضافی هستند یا قبل از محاسبه تمیز میشوند؛ در کد از FS="," و OFS="," استفاده میشود، سطر نخست را به عنوان هدر چاپ میکند و برای سطور بعدی total = quantity * price با printf قالببندی میشود. برای گزارش تجمیعی میتوانید از آرایه انجمنی استفاده کنید تا مجموع total برای هر محصول جمع آوری شده و در END چاپ گردد یا با sort مرتب شود. خروجی به دو فایل جداگانه هدایت میشود: یکی CSV جدید با ستونهای date,product,quantity,price,total و دیگری گزارش مجموع فروش برای هر محصول.
گزارش