این دستور mac2unix است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
dos2unix - تبدیل فرمت فایل متنی DOS/Mac به Unix و بالعکس
خلاصه
dos2unix [گزینه ها] [FILE ...] [-n INFILE OUTFILE ...]
unix2dos [گزینه ها] [FILE ...] [-n INFILE OUTFILE ...]
شرح
بسته Dos2unix شامل ابزارهای «dos2unix» و «unix2dos» برای تبدیل متن ساده است.
فایل ها با فرمت DOS یا Mac به فرمت Unix و بالعکس.
در فایل های متنی DOS/Windows یک خط شکست که به عنوان خط جدید نیز شناخته می شود، ترکیبی از دو است
کاراکترها: یک بازگشت کالسکه (CR) و به دنبال آن یک تغذیه خط (LF). در فایل های متنی یونیکس یک خط
break یک کاراکتر است: تغذیه خط (LF). در فایلهای متنی Mac، قبل از Mac OS X، الف
شکست خط تک کاراکتر بازگشت کالسکه (CR) بود. امروزه سیستم عامل مک از سبک یونیکس (LF) استفاده می کند.
خط می شکند
علاوه بر شکست خط، Dos2unix همچنین می تواند رمزگذاری فایل ها را تبدیل کند. چند صفحه کد DOS
را می توان به Unix Latin-1 تبدیل کرد. و فایل های یونیکد ویندوز (UTF-16) را می توان به تبدیل کرد
فایل های Unix Unicode (UTF-8).
فایل های باینری به طور خودکار حذف می شوند، مگر اینکه تبدیل اجباری شود.
فایلهای غیر عادی، مانند دایرکتوریها و FIFO، بهطور خودکار حذف میشوند.
پیوندهای نمادین و اهداف آنها به طور پیش فرض دست نخورده نگه داشته می شوند. پیوندهای نمادین می توانند
به صورت اختیاری جایگزین شود، یا خروجی را می توان در هدف پیوند نمادین نوشت.
پیوندهای نمادین در ویندوز پشتیبانی نمی شوند. پیوندهای نمادین ویندوز همیشه جایگزین می شوند،
بدون تغییر نگه داشتن اهداف
Dos2unix پس از dos2unix تحت SunOS/Solaris مدلسازی شد و حالتهای تبدیل مشابهی دارد.
OPTIONS
-- همه گزینه های زیر را به عنوان نام فایل در نظر بگیرید. اگر می خواهید تبدیل کنید از این گزینه استفاده کنید
فایل هایی که نام آنها با خط تیره شروع می شود. به عنوان مثال برای تبدیل فایلی به نام "-foo"، شما
می توانید از این دستور استفاده کنید:
dos2unix -- -foo
یا در حالت فایل جدید:
dos2unix -n -- -foo out.txt
-آسی
تبدیل تنها شکست خط. این حالت تبدیل پیش فرض است.
-ایزو
تبدیل بین مجموعه کاراکترهای DOS و ISO-8859-1. همچنین به بخش تبدیل مراجعه کنید
حالت ها.
-1252
از صفحه کد ویندوز 1252 (اروپایی غربی) استفاده کنید.
-437
از صفحه کد DOS 437 (US) استفاده کنید. این صفحه کد پیش فرضی است که برای تبدیل ISO استفاده می شود.
-850
از صفحه کد DOS 850 (اروپایی غربی) استفاده کنید.
-860
از صفحه کد DOS 860 (پرتغالی) استفاده کنید.
-863
از صفحه کد DOS 863 (فرانسوی کانادایی) استفاده کنید.
-865
از صفحه کد DOS 865 (اسکاندیناوی) استفاده کنید.
-7 کاراکترهای 8 بیتی را به فضای 7 بیتی تبدیل کنید.
-c، --convmode CONVMODE
حالت تبدیل را تنظیم کنید جایی که CONVMODE یکی از موارد زیر است: ASCII, 7bit, ISO, مک با وجود آسکی
پیشفرض.
-f، --زور
تبدیل اجباری فایل های باینری
-h، --کمک
نمایش راهنما و خروج.
-k، --نگهداری
مهر تاریخ فایل خروجی را مانند فایل ورودی نگه دارید.
-ل، --مجوز
نمایش مجوز برنامه
-ل، --خط جدید
اضافه کردن خط جدید اضافی
dos2unix: فقط شکست خط DOS به دو شکست خط یونیکس تغییر می کند. فقط در حالت مک
شکست خط مک به دو شکست خط یونیکس تغییر می کند.
unix2dos: فقط شکست خط یونیکس به دو شکست خط DOS تغییر می کند. در حالت مک یونیکس
شکست خط به دو شکست خط مک تغییر می کند.
-m، --add-bom
یک علامت ترتیب UTF-8 Byte در فایل خروجی بنویسید. هرگز از این گزینه استفاده نکنید زمانی که
کدگذاری خروجی غیر از UTF-8 است. همچنین به بخش یونیکد مراجعه کنید.
-n، --newfile INFILE پر از زاویه ...
حالت فایل جدید فایل INFILE را تبدیل کنید و خروجی را به فایل OUTFILE بنویسید. نام فایل ها باید
به صورت جفتی داده می شود و نام های عام باید نه استفاده شود یا شما اراده فایل های خود را از دست بدهید
شخصی که تبدیل را در حالت فایل جدید (جفت شده) شروع می کند مالک آن خواهد بود
فایل تبدیل شده مجوزهای خواندن/نوشتن فایل جدید، مجوزها خواهند بود
از فایل اصلی منهای umask(1) از شخصی که تبدیل را اجرا می کند.
-و ، --oldfile فایل ...
حالت فایل قدیمی فایل FILE را تبدیل کنید و خروجی را روی آن بازنویسی کنید. برنامه به صورت پیش فرض
در این حالت اجرا شود ممکن است از نام های عام استفاده شود.
در حالت فایل قدیمی (درجا) فایل تبدیل شده همان مالک، گروه و
مجوزهای خواندن/نوشتن به عنوان فایل اصلی. همچنین زمانی که فایل توسط
کاربر دیگری که مجوز نوشتن روی فایل دارد (مثلا کاربر root). تبدیل
زمانی که امکان حفظ مقادیر اصلی وجود نداشته باشد، سقط خواهد شد. تغییر
مالک می تواند به این معنی باشد که مالک اصلی دیگر قادر به خواندن فایل نیست. تغییر دادن
از گروه می تواند یک خطر امنیتی باشد، فایل می تواند برای افراد قابل خواندن باشد
که در نظر گرفته نشده است. حفظ مالک، گروه و مجوزهای خواندن/نوشتن است
فقط در یونیکس پشتیبانی می شود.
-q، --ساکت
حالت بی صدا تمام هشدارها و پیام ها را سرکوب کنید. مقدار برگشتی صفر است. به جز زمانی که
از گزینه های خط فرمان اشتباه استفاده می شود.
-s ، --بی خطر
پرش از فایل های باینری (پیش فرض).
-اول، -- فرض-utf16le
فرض کنید فرمت فایل ورودی UTF-16LE است.
هنگامی که علامت ترتیب بایت در فایل ورودی وجود دارد، BOM بر این اولویت دارد
گزینه.
زمانی که فرض اشتباهی کردید (فایل ورودی با فرمت UTF-16LE نبود) و
تبدیل با موفقیت انجام شد، یک فایل خروجی UTF-8 با متن اشتباه دریافت خواهید کرد. می توانید لغو کنید
تبدیل اشتباه با نماد(1) با تبدیل فایل خروجی UTF-8 به
UTF-16LE. با این کار فایل اصلی باز می گردد.
فرض UTF-16LE به عنوان یک تبدیل حالت. با تغییر حالت پیش فرض
ASCII حالت فرض UTF-16LE خاموش است.
-ub، -- فرض-utf16be
فرض کنید فرمت فایل ورودی UTF-16BE است.
این گزینه مانند گزینه "-ul" عمل می کند.
-اف، --follow-symlink
پیوندهای نمادین را دنبال کنید و اهداف را تبدیل کنید.
-ر، --replace-symlink
پیوندهای نمادین را با فایل های تبدیل شده جایگزین کنید (فایل های هدف اصلی بدون تغییر باقی می مانند).
-S، -- skip-symlink
پیوندها و اهداف نمادین را بدون تغییر نگه دارید (پیش فرض).
-V، - نسخه
نمایش اطلاعات نسخه و خروج.
MAC MODE
در حالت عادی خطوط شکسته از DOS به Unix و بالعکس تبدیل می شوند. خط مک می شکند
تبدیل نمی شوند.
در حالت مک، خطوط شکسته از مک به یونیکس و بالعکس تبدیل می شوند. شکست خط DOS هستند
تغییر نکرده.
برای اجرا در حالت مک از گزینه خط فرمان "-c mac" استفاده کنید یا از دستورات "mac2unix" یا
"unix2mac".
تبدیل حالت ها
حالت های تبدیل ASCII, 7bitو ISO مشابه مواردی که در dos2unix/unix2dos در زیر وجود دارد
SunOS/Solaris.
ASCII
در حالت "ascii" فقط شکست خط تبدیل می شود. این حالت تبدیل پیش فرض است.
اگرچه نام این حالت ASCII است که یک استاندارد 7 بیتی است، اما حالت واقعی آن است
8 بیت. هنگام تبدیل فایل های Unicode UTF-8 همیشه از این حالت استفاده کنید.
7bit
در این حالت همه کاراکترهای 8 بیتی غیر ASCII (با مقادیر 128 تا 255) هستند
به فضای 7 بیتی تبدیل شد.
ISO کاراکترها بین مجموعه کاراکترهای DOS (صفحه کد) و مجموعه کاراکتر ISO تبدیل می شوند
ISO-8859-1 (لاتین-1) در یونیکس. کاراکترهای DOS بدون معادل ISO-8859-1، که برای آن
تبدیل امکان پذیر نیست، به یک نقطه تبدیل می شوند. همین امر برای ISO-8859-1 نیز صدق می کند
کاراکترهای بدون همتای DOS
هنگامی که تنها گزینه "-iso" استفاده می شود، dos2unix سعی می کند صفحه کد فعال را تعیین کند.
هنگامی که این امکان پذیر نباشد، dos2unix از صفحه کد پیش فرض CP437 استفاده می کند که عمدتاً اینگونه است
در ایالات متحده استفاده می شود. برای اجبار یک صفحه کد خاص از گزینه های "-437" (US)، "-850" استفاده کنید
(اروپایی غربی)، "-860" (پرتغالی)، "-863" (فرانسوی کانادایی)، یا "-865" (اسکاندیناوی).
صفحه کد ویندوز CP1252 (اروپایی غربی) نیز با گزینه "-1252" پشتیبانی می شود. برای
سایر صفحات کد از dos2unix در ترکیب با نماد(1). Iconv می تواند بین آنها تبدیل شود
یک لیست طولانی از رمزگذاری کاراکترها
هرگز از تبدیل ISO در فایل های متنی یونیکد استفاده نکنید. فایل های کدگذاری شده UTF-8 را خراب می کند.
بعضی مثالها:
از صفحه کد پیش فرض DOS به Unix Latin-1 تبدیل کنید
dos2unix -iso -n in.txt out.txt
از DOS CP850 به Unix Latin-1 تبدیل کنید
dos2unix -850 -n in.txt out.txt
از Windows CP1252 به Unix Latin-1 تبدیل کنید
dos2unix -1252 -n in.txt out.txt
تبدیل از Windows CP1252 به Unix UTF-8 (یونیکد)
iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt
از Unix Latin-1 به صفحه کد پیش فرض DOS تبدیل کنید.
unix2dos -iso -n in.txt out.txt
از Unix Latin-1 به DOS CP850 تبدیل کنید
unix2dos -850 -n in.txt out.txt
از Unix Latin-1 به Windows CP1252 تبدیل کنید
unix2dos -1252 -n in.txt out.txt
از یونیکس UTF-8 (یونیکد) به ویندوز CP1252 تبدیل کنید
unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt
همچنین ببینیدhttp://czyborra.com/charsets/codepages.html> و
<http://czyborra.com/charsets/iso8859.html>.
یونیکد
رمزگذاری
رمزگذاری های مختلف یونیکد وجود دارد. در یونیکس و لینوکس فایلهای یونیکد معمولاً هستند
کدگذاری شده در رمزگذاری UTF-8. در ویندوز یونیکد فایلهای متنی را میتوان با UTF-8، UTF-16 کدگذاری کرد.
یا UTF-16 big endian، اما بیشتر در قالب UTF-16 کدگذاری می شوند.
تبدیل
فایلهای متنی یونیکد میتوانند مانند فایلهای متنی معمولی دارای وقفههای خط DOS، Unix یا Mac باشند.
همه نسخههای dos2unix و unix2dos میتوانند فایلهای کدگذاری شده UTF-8 را تبدیل کنند، زیرا UTF-8
طراحی شده برای سازگاری با ASCII.
Dos2unix و unix2dos با پشتیبانی Unicode UTF-16، می توانند UTF-16 اندیان کوچک و بزرگ را بخوانند.
فایل های متنی کدگذاری شده برای اینکه ببینید آیا dos2unix با پشتیبانی UTF-16 ساخته شده است یا خیر، نوع "dos2unix -V" را انتخاب کنید.
نسخه های ویندوز dos2unix و unix2dos فایل های رمزگذاری شده UTF-16 را همیشه به UTF-8 تبدیل می کنند.
فایل های کدگذاری شده نسخه های یونیکس dos2unix/unix2dos فایل های کدگذاری شده UTF-16 را به
زمانی که روی UTF-8 تنظیم شده باشد، کدگذاری کاراکتر محلی. استفاده کنید محل(1) دستور برای پیدا کردن
رمزگذاری کاراکتر محلی چیست.
از آنجایی که فایلهای متنی با فرمت UTF-8 به خوبی در ویندوز و یونیکس، dos2unix پشتیبانی میشوند
و unix2dos هیچ گزینه ای برای نوشتن فایل های UTF-16 ندارند. همه کاراکترهای UTF-16 را می توان در آن کدگذاری کرد
UTF-8. تبدیل از UTF-16 به UTF-8 بدون ضرر است. فایلهای UTF-16 حذف خواهند شد
یونیکس زمانی که رمزگذاری کاراکتر محلی UTF-8 نیست، برای جلوگیری از از دست دادن تصادفی متن.
هنگامی که یک خطای تبدیل UTF-16 به UTF-8 رخ می دهد، به عنوان مثال زمانی که فایل ورودی UTF-16
حاوی یک خطا است، فایل حذف خواهد شد.
تبدیل حالت ISO و 7 بیتی روی فایل های UTF-16 کار نمی کند.
هشت بیت سفارش علامت
در ویندوز، فایلهای متنی یونیکد معمولاً دارای علامت ترتیب بایت (BOM) هستند، زیرا بسیاری از ویندوزها
برنامه ها (از جمله Notepad) به طور پیش فرض BOM را اضافه می کنند. همچنین ببینید
<http://en.wikipedia.org/wiki/Byte_order_mark>.
در یونیکس، فایلهای یونیکد معمولاً BOM ندارند. فرض بر این است که فایل های متنی هستند
در رمزگذاری کاراکتر محلی کدگذاری شده است.
Dos2unix فقط در صورتی می تواند تشخیص دهد که یک فایل با فرمت UTF-16 است که فایل دارای BOM باشد. زمانی که یک
فایل UTF-16 BOM ندارد، dos2unix فایل را به عنوان یک فایل باینری می بیند.
از گزینه "-ul" یا "-ub" برای تبدیل فایل UTF-16 بدون BOM استفاده کنید.
Dos2unix هرگز یک BOM در فایل خروجی نمی نویسد، مگر اینکه از گزینه "-m" استفاده کنید.
Unix2dos زمانی که فایل ورودی دارای یک BOM یا وقتی گزینه است، یک BOM در فایل خروجی می نویسد.
"-m" استفاده می شود.
یونیکد مثال ها
از ویندوز UTF-16 (با BOM) به یونیکس UTF-8 تبدیل کنید
dos2unix -n in.txt out.txt
از ویندوز UTF-16LE (بدون BOM) به یونیکس UTF-8 تبدیل کنید
dos2unix -ul -n in.txt out.txt
از Unix UTF-8 به Windows UTF-8 با BOM تبدیل کنید
unix2dos -m -n in.txt out.txt
از Unix UTF-8 به Windows UTF-16 تبدیل کنید
unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt
مثال ها
ورودی را از 'stdin' بخوانید و خروجی را به 'stdout' بنویسید.
dos2unix
dos2unix -l -c مک
a.txt را تبدیل و جایگزین کنید. b.txt را تبدیل و جایگزین کنید.
dos2unix a.txt b.txt
dos2unix -o a.txt b.txt
a.txt را در حالت تبدیل ascii تبدیل و جایگزین کنید.
dos2unix a.txt
a.txt را در حالت تبدیل ascii تبدیل و جایگزین کنید. b.txt را در 7 بیت تبدیل و جایگزین کنید
حالت تبدیل
dos2unix a.txt -c 7bit b.txt
dos2unix -c ascii a.txt -c 7bit b.txt
dos2unix -ascii a.txt -7 b.txt
a.txt را از مک به فرمت یونیکس تبدیل کنید.
dos2unix -c mac a.txt
mac2unix a.txt
a.txt را از فرمت یونیکس به مک تبدیل کنید.
unix2dos -c mac a.txt
unix2mac a.txt
با حفظ مهر تاریخ اصلی، a.txt را تبدیل و جایگزین کنید.
dos2unix -k a.txt
dos2unix -k -o a.txt
a.txt را تبدیل کرده و به e.txt بنویسید.
dos2unix -n a.txt e.txt
a.txt را تبدیل کنید و به e.txt بنویسید، مهر تاریخ e.txt را مانند a.txt نگه دارید.
dos2unix -k -n a.txt e.txt
a.txt را تبدیل و جایگزین کنید. b.txt را تبدیل کرده و به e.txt بنویسید.
dos2unix a.txt -n b.txt e.txt
dos2unix -o a.txt -n b.txt e.txt
c.txt را تبدیل کرده و به e.txt بنویسید. a.txt را تبدیل و جایگزین کنید. b.txt را تبدیل و جایگزین کنید.
d.txt را تبدیل کرده و به f.txt بنویسید.
dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt
بازگشتی تبدیل
استفاده از dos2unix در ترکیب با پیدا کردن(1) و سارقین(1) دستور تبدیل بازگشتی
فایل های متنی در ساختار درختی دایرکتوری به عنوان مثال برای تبدیل همه فایل های txt در
درخت دایرکتوری تحت نوع دایرکتوری فعلی:
پیدا کردن . -name *.txt |xargs dos2unix
بومی سازی
زبان
زبان اصلی با متغیر محیطی LANG انتخاب می شود. متغیر LANG
از چندین بخش تشکیل شده است قسمت اول با حروف کوچک کد زبان است.
دومی اختیاری است و کد کشور با حروف بزرگ و قبل از علامت است
زیرخط. همچنین یک بخش سوم اختیاری وجود دارد: رمزگذاری کاراکتر، قبل از a
نقطه. چند مثال برای پوسته های نوع استاندارد POSIX:
صادرات LANG=nl هلندی
صادرات LANG=nl_NL هلندی، هلند
صادرات LANG=nl_BE هلندی، بلژیک
صادرات LANG=es_ES اسپانیایی، اسپانیا
صادرات LANG=es_MX اسپانیایی، مکزیک
صادرات LANG=en_US.iso88591 انگلیسی، ایالات متحده آمریکا، رمزگذاری لاتین-1
صادرات LANG=en_GB.UTF-8 English, UK, UTF-8 encoding
برای فهرست کامل کدهای زبان و کشور، راهنمای gettext را ببینید:
<http://www.gnu.org/software/gettext/manual/gettext.html#زبان-کدها>
در سیستمهای یونیکس میتوانید برای فرماندهی استفاده کنید محل(1) برای دریافت اطلاعات محلی خاص.
زبان
با متغیر محیطی LANGUAGE می توانید لیست اولویتی از زبان ها را مشخص کنید.
با کولون از هم جدا شده اند. Dos2unix به LANGUAGE بر LANG ترجیح می دهد. برای مثال،
ابتدا هلندی و سپس آلمانی: "LANGUAGE=nl:de". ابتدا باید محلی سازی را فعال کنید،
با تنظیم LANG (یا LC_ALL) روی مقداری غیر از "C"، قبل از اینکه بتوانید از یک زبان استفاده کنید
لیست اولویت از طریق متغیر LANGUAGE. همچنین به راهنمای gettext مراجعه کنید:
<http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable>
اگر زبانی را انتخاب کنید که در دسترس نیست، انگلیسی استاندارد را دریافت خواهید کرد
پیام ها.
DOS2UNIX_LOCALEDIR
با متغیر محیطی DOS2UNIX_LOCALEDIR، LOCALEDIR در حین کامپایل تنظیم می شود
را می توان رد کرد. LOCALEDIR برای یافتن فایل های زبان استفاده می شود. مقدار پیش فرض گنو
"/usr/local/share/locale" است. گزینه - نسخه LOCALEDIR را نمایش می دهد
استفاده شده.
مثال (پوسته POSIX):
صادرات DOS2UNIX_LOCALEDIR=$HOME/share/locale
برگشت ارزش
در صورت موفقیت، صفر برگردانده می شود. هنگامی که یک خطای سیستم رخ می دهد آخرین خطای سیستم خواهد بود
بازگشت. برای سایر خطاها 1 برگردانده می شود.
مقدار بازگشتی همیشه در حالت بی صدا صفر است، به جز زمانی که گزینه های خط فرمان اشتباه هستند
استفاده شده.
استانداردها
<http://en.wikipedia.org/wiki/Text_file>
<http://en.wikipedia.org/wiki/Carriage_return>
<http://en.wikipedia.org/wiki/Newline>
<http://en.wikipedia.org/wiki/Unicode>
AUTHORS
بنجامین لین -[ایمیل محافظت شده]> Bernd Johannes Wuebben (حالت mac2unix) -
<[ایمیل محافظت شده]>، Christian Wurll (اضافه کردن خط جدید اضافی) -[ایمیل محافظت شده]>، اروین
آبزی -[ایمیل محافظت شده]> (نگهدار)
صفحه پروژه:http://waterlan.home.xs4all.nl/dos2unix.html>
صفحه SourceForge:http://sourceforge.net/projects/dos2unix/>
کد رایگان:http://freecode.com/projects/dos2unix>
با استفاده از خدمات onworks.net از mac2unix به صورت آنلاین استفاده کنید