یک اسکریپت Bash بنویسید که یک فایل CSV با هدر را خوانده و ستون‌های name، date و amount را به ترتیب date, name, amount مرتب کرده، فرمت تاریخ را از YYYY-MM-DD به DD/MM/YYYY تبدیل نموده و خروجی را در یک فایل CSV جدید ذخیره کند.

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

0.0

برای حل این مسئله می‌توانید از ابزارهای استاندارد خط فرمان مثل awk، cut و sed استفاده کنید؛ فرض کنید فایل ورودی هدر دارد و فیلدها با کاما جدا شده‌اند و فیلدها داخل نقل‌قول پیچیده نیستند. ابتدا هدر را پردازش کرده و ستون‌ها را به ترتیب جدید چاپ کنید، سپس برای هر سطر داده با awk فیلد تاریخ را با split یا substr جدا کرده و ترتیب روز/ماه/سال را بسازید و همراه با بقیه فیلدها با OFS="," خروجی بدهید؛ نکته‌ها: خط‌های خالی را نادیده بگیرید، و اگر می‌خواهید انعطاف بیشتر داشته باشید از آرگومان‌های اسکریپت برای نام فایل ورودی/خروجی استفاده کنید.

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

برای کار با CSV ساده با هدر و فیلدهای بدون نقل قول پیچیده، می‌توانید از awk استفاده کنید و در خط اول هدر را پردازش کرده و ستون‌ها را به ترتیب date، name، amount چاپ کنید. برای تبدیل تاریخ از YYYY-MM-DD به DD/MM/YYYY می‌توانید با split یا substr تاریخ را جدا کرده و مجدداً مرتب کنید و خروجی را با OFS="," تشکیل دهید. حتماً خطوط خالی را نادیده بگیرید و برای انعطاف بیشتر از آرگومان‌های اسکریپت برای نام فایل ورودی و خروجی استفاده کنید تا Script دوباره‌کاری کمتری داشته باشد. همچنین پیشنهاد می‌شود ورودی را قبل از اجرای اصلی بررسی کرده و در صورت وجود فیلدهای ناقص یا داده‌های غیرمرتبط، خط را کنار گذاشته یا لاگ کنید تا خروجی پایدار و سازگار باقی بماند.

گزارش

1 پاسخ

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

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