یک اسکریپت Bash بنویسید که همه فایل‌های متنی (.txt) را در یک پوشه و زیرپوشه‌هایش پیدا کرده، آنها را به UTF-8 تبدیل کرده و نسخه‌های تبدیل‌شده را با حفظ ساختار درختی در یک پوشه خروجی ذخیره کند.

3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:23

0.0

برای حل این مسئله از دستور find برای فهرست کردن فایل‌ها و از iconv برای تبدیل encoding استفاده کنید؛ با -print0 و read -d '' یا xargs -0 از درست کار کردن با نام‌های فایل شامل فاصله مطمئن شوید. مسیر نسبی هر فایل را با realpath --relative-to یا با حذف پیشوند مسیر منبع به‌دست آورید، سپس با mkdir -p پوشه مقصد را بسازید و خروجی iconv را در مسیر مقصد بنویسید. در اسکریپت از بررسی آرگومان‌های ورودی (مسیر مبدأ و مقصد)، مدیریت خطاها و قرار دادن مجوز اجرایی (chmod +x) استفاده کنید و ابتدا روی یک کپی از داده‌ها تست کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:23
دسته بندی ها: Bash Scripting Bash Scripting for beginner
reyhaneh در 221 روز قبل ساعت 13:28

برای سازگاری با نام‌های فایل دارای فاصله یا کاراکترهای ویژه، از -print0 با xargs -0 (یا read -d '') استفاده کنید. همچنین حتما ورودی‌ها را با set -euo pipefail بررسی کنید تا خطاها به صورت صریح گزارش شوند. برای حفظ ساختار درختی خروجی، مسیر نسبی هر فایل را با realpath --relative-to بیابید و قبل از نوشتن فایل، دایرکتوری مقصد را با mkdir -p بسازید. در نهایت پیش از اجرای نهایی روی کپی داده‌ها آزمایش کنید و با مجوز اجرایی و مدیریت خطاها مطمئن شوید.

گزارش

1 پاسخ

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

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