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