dos2unix(1) | 2022-06-05 | dos2unix(1) |
dos2unix – претварач формата текстуалних датотека из ДОС/Мек-а у Јуникс и обратно
dos2unix [опције] [ДАТОТЕКА ...] [-n УЛАЗНА_ДАТОТЕКА ИЗЛАЗНА_ДАТОТЕКА ...] unix2dos [опције] [ДАТОТЕКА ...] [-n УЛАЗНА_ДАТОТЕКА ИЗЛАЗНА_ДАТОТЕКА ...]
“dos2unix“ пакет укључује помагала „"dos2unix"“ и „"unix2dos"“ за претварање обичне текстуалне датотеке у ДОС или Мек формат у Јуникс формат и обратно.
У ДОС/Виндоуз текстуалним датотекама преламање реда, такође познато и као нови ред, је комбинација два знака: „Carriage Return“ (CR) за којим следи „Line Feed“ (LF). У Јуникс текстуалним датотекама преламање реда је један знак: „Line Feed“ (LF). У Мек текстуалним датотекама, пре Мек ОС Икс-а, преламање реда беше један знак „Carriage Return“ (CR). Данас Мек ОС користи преламање реда у Јуникс стилу (LF).
Поред преламања реда „dos2unix“ такође може претворити кодирање датотека. Неколико ДОС кодних страница се може претворити у Јуникс Latin-1. А Виндоуз Јуникод (УТФ-16) датотеке се могу претворити у Јуникс Јуникод (УТФ-8) датотеке.
Бинарне датотеке се аутоматски прескачу, осим ако претварање није приморано.
Нередовне датотеке, као што су директоријуму и ПУПИ, се аутоматски прескачу.
Симболичке везе и њихови циљеви се подразумевано не дирају. Симболичке везе се по жељи могу заменити, или се излаз може записати на мету симболичке везе. Писање на мету симболичке везе није подржано на Виндоузу.
„dos2unix“ је направљен по узору на „dos2unix“ под СанОС/Соларисом. Постоји једна важна разлика са изворним СанОС/Соларис издањем. Ово издање подразумевано врши претварање у месту (стари режим датотеке), док изворно СанОС/Соларис издање подржава само упарено претварање (нови режим датотеке). Такође погледајте опције „"-o"“ и „"-n"“. Друга разлика је у томе што издање СанОС/Солариса подразумевано користи режим „iso“ претварања док ово издање подразумевано користи режим „ascii“ претварања.
dos2unix -- -foo
Или у режим нове датотеке:
dos2unix -n -- -foo излаз.txt
When this option is used, the conversion will not be aborted when the user and/or group ownership of the original file can't be preserved in old file mode. Conversion will continue and the converted file will get the same new ownership as if it was converted in new file mode. See also options "-o" and "-n". This option is only available if dos2unix has support for preserving the user and group ownership of files.
Ова опција је доступна само у „dos2unix“ за Виндоуз са подршком за Јуникод назив датотеке. Ова опција нема утицаја на стварно читање и писање назива датотека, већ само на начин на који се приказују.
Постоји неколико метода за приказивање текста у Виндоуз конзоли на основу кодирања текста. Сви они имају своје предности и недостатке.
Недостатак анси-ја је што се међународни називи датотека са знаковима који нису унутар системски подразумеване кодне странице не приказују правилно. Уместо тога видећете знак питања, или погрешан симбол. Када не радите са страним називима датотека, овај метод је у реду.
Када користите „ConEmu“ конзолу сав текст се исправно приказује, јер „ConEmu“ аутоматски бира добра слова.
Недостатак јуникод-а је што није сагласан са АСКРИ-јем. Излазом није лако руковати када га преусмерите на други програм.
Када се користи „"unicodebom"“ метод Јуникод тексту ће претходити ОРБ (Ознака редоследа вбајтоа). ОРБ је потребан за правилно преусмеравање или преспајање у „PowerShell“-у.
Недостатак је што се приликом коришћења подразумеваних растерских слова сви не-АСКРИ знакови се погрешно приказују. Не само да Јуникод називи датотека, већ и преведене поруке постају нечитљиве. У Виндоузу подешеном за регију Источне Азије, можда ћете видети пуно треперења конзоле приликом приказивања порука.
У „ConEmu“ конзоли утф8 метода кодирања ради лепо.
Када се користи „"utf8bom"“ метод УТФ-8 тексту ће претходити ОРБ (Ознака редоследа вбајтоа). ОРБ је потребна за правилно преусмеравање или преспајање у „PowerShell“-у.
Подразумевано кодирање можете изменити променљивом окружења „DOS2UNIX_DISPLAY_ENC“ тако што ћете је поставити на „"unicode"“, „"unicodebom"“, „"utf8"“, или „"utf8bom"“.
Следеће информације се исписују, овим редом: број ДОС прелома реда, број Јуникс прелома реда, број Мек прелома реда, ознака редоследа бајтова, текст или бинарна, назив датотеке.
Пример излаза:
6 0 0 no_bom текст dos.txt 0 6 0 no_bom текст unix.txt 0 0 6 no_bom текст mac.txt 6 6 6 no_bom текст mixed.txt 50 0 0 UTF-16LE текст utf16le.txt 0 50 0 no_bom текст utf8unix.txt 50 0 0 UTF-8 текст utf8dos.txt 2 418 219 no_bom бинарна dos2unix.exe
Знајте да понекад бинарна датотека може грешком бити узета за текстуалну датотеку. Видите такође опцију „"-s"“.
Изборне додатне заставице се могу поставити да измене излаз. Могу се додати једна или више заставица.
Са заставицом „"c"“ „dos2unix“ ће исписати само датотеке које садрже ДОС преламања реда, „unix2dos“ ће исписат само називе датотека које имају Јуникс преламања реда.
Примери:
Приказује податке за све „*.txt“ датотеке:
dos2unix -i *.txt
Приказује само број ДОС преламања реда и број Јуникс преламања реда:
dos2unix -idu *.txt
Приказује само ознаку редоследа бајтова:
dos2unix --info=b *.txt
Исписује датотеке које имају ДОС преламање реда:
dos2unix -ic *.txt
Исписује датотеке које имају Јуникс преламање реда:
unix2dos -ic *.txt
Претвара само датотеке које имају ДОС преламање реда и оставља друге датотеке нетакнутим:
dos2unix -ic0 *.txt | xargs -0 dos2unix
Налази текстуалне датотеке које имају ДОС преламање реда:
find -name '*.txt' -print0 | xargs -0 dos2unix -ic
dos2unix: Само ДОС преламања реда се мењају у два Јуникс преламања реда. У Мек режиму само Мек преламања реда се мењају у два Јуникс преламања реда.
unix2dos: Само Јуникс преламања реда се мењају у два ДОС преламања реда. У Мек режиму Јуникс преламања реда се мењају у два Мек преламања реда.
Када је улазна датотека УТФ-16, и користи се опција „"-u"“, биће записана УТФ-16 ОРБ.
Никада не користите ову опцију када је излазно кодирање другачије од „UTF-8“, „UTF-16“, или „GB18030“. Видите такође одељак ЈУНИКОД.
Особа која започне претварање у режиму нове (упарене) датотеке биће власник претворене датотеке. Овлашћења за читање/писање нове датотеке биће овлашћење изворне датотеке мање „umask(1)“ особе која покреће претварање.
Abort conversion when the user and/or group ownership of the original file can't be preserved in old file mode. See also options "-o" and "-n". This option is only available if dos2unix has support for preserving the user and group ownership of files.
У режиму старе датотеке (у месту) претворена датотека добија иста овлашћења власника, групе и читања/писања као и изворна датотека. Такође када датотеку претвори други корисник који има овлашћење писања над датотеком (нпр. корисник администратор). Претварање ће се прекинути када не буде било могуће очувати изворне вредности. Промена власника може значити да првобитни власник више не може да чита датотеку. Промена групе може представљати безбедносни ризик, датотека може постати читљива од стране особа којима није намењена. Очување овлашћења власника, групе и читања/писања подржано је само на Јуниксу.
Да проверите да ли „dos2unix“ има подршку очувања власништва корисника и групе над датотеком упишите „"dos2unix -V"“.
Претварање се увек врши путем привремене датотеке. Када се на пола претварања догоди грешка, привремена датотека се брише а изворна датотека остаје нетакнута. Када претварање успе, изворна датотека се замењује привременом датотеком. Можете имати дозволу за писање над изворном датотеком, али немате дозволу да ставите иста својстава овлашћења корисника и/или груп у привремену датотеку као што има и изворна датотека. То значи да нисте у могућности да сачувате власништво корисника и/или групе над изворном датотеком. У овом случају можете користити опцију „"--allow-chown"“ да наставите са претварањем:
dos2unix --allow-chown foo.txt
Друга могућност је да користи режим нове датотеке:
dos2unix -n foo.txt foo.txt
Предност опције „"--allow-chown"“ је да можете користити џокере, а својства власништва биће очувана када је могуће.
Прескакање бинарних датотека врши се како би се избегле случајне грешке. Имајте на уму да откривање бинарних датотека није 100% поуздано. У улазним датотекама се траже бинарни симболи који се обично не налазе у текстуалним датотекама. Могуће је да бинарна датотека садржи само обичне текстуалне знакове. Таква бинарна датотека ће се погрешно сматрати текстуалном датотеком.
Када постоји Ознака редоследа бајтова у улазној датотеци ОРБ има предност над овом опцијом.
Када сте погрешно претпоставили (улазна датотека није била у УТФ-16ЛЕ формату) а претварање је успело, добићете УТФ-8 излазну датотеку са погрешним текстом. Погрешно претварање можете да опозовете помоћу „iconv(1)“ претварањем УТФ-8 излазне датотеке назад у УТФ-16ЛЕ. Ово ће вратити изворну датотеку.
Претпоставка УТФ-16ЛЕ ради као „conversion mode“. Пребацивањем на основни „ascii“ режим УТФ-16ЛЕ претпоставка се искључује.
Ова опција ради исто као и опција „"-ul"“.
У нормалном режиму преламања реда се претварју из ДОС-а у Јуникс и обратно. Мек преламања реда се не претварају.
У Мек режиму преламања реда се претварју из Мек-а у Јуникс и обратно. ДОС преламања реда се не мењају.
Да покренете у Мек режиму користите опцију „"-c mac"“ или користите наредбе „"mac2unix"“ или „"unix2mac"“.
Иако је назив овог режима АСКРИ, што је 7-битни стандард, стварни режим је 8-битни. Увек користите овај режим приликом претварања Јуникод УТФ-8 датотека.
Када се користи само опција „"-iso"“, „dos2unix“ ће покушати да одреди активну кодну страницу. Када то није могуће, „dos2unix“ ће користити подразумевану кодну страницу ЦП437, која се углавном користи у САД-у. Да бисте приморали одређену кодну страницу, користите опције „"-437"“ (САД), „"-850"“ (западноевропски), „"-860"“ (португалски), „"-863"“ (француски канадски) или „"-865"“ (нордијски). Виндоуз кодна страница ЦП1252 (западноевропски) је такође подржана опцијом „"-1252"“. За остале кодне странице користите „dos2unix“ у комбинацији са „iconv(1)“. Иконв може да претвара између дугог списка кодирања знакова.
Никада не користите ИСО претварање над Јуникод текстуалним датотекама. Оштетиће УТФ-8 кодиране датотеке.
Неки примери:
Претворите из ДОС основне кодне странице у Јуникс Latin-1:
dos2unix -iso -n улаз.txt излаз.txt
Претворите из ДОС CP850 у Јуникс Latin-1:
dos2unix -850 -n улаз.txt излаз.txt
Претворите из Виндоуз CP1252 у Јуникс Latin-1:
dos2unix -1252 -n улаз.txt излаз.txt
Претворите из Виндоуз CP1252 у Јуникс УТФ-8 (Јуникод):
iconv -f CP1252 -t UTF-8 улаз.txt | dos2unix > излаз.txt
Претворите из Јуникс Latin-1 у ДОС основну кодну страницу:
unix2dos -iso -n улаз.txt излаз.txt
Претворите из Јуникс Latin-1 у ДОС CP850:
unix2dos -850 -n улаз.txt излаз.txt
Претворите из Јуникс Latin-1 у Вондоуз CP1252:
unix2dos -1252 -n улаз.txt излаз.txt
Претворите из Јуникс УТФ-8 (Јуникод) у Вондоуз CP1252:
unix2dos < улаз.txt | iconv -f UTF-8 -t CP1252 > излаз.txt
Видите такође <http://czyborra.com/charsets/codepages.html> и <http://czyborra.com/charsets/iso8859.html>.
Постоје различита Јуникод кодирања. На Јуниксу и Линуксу Јуникод датотеке су обично кодиране у УТФ-8 кодирању. На Виндоузу Јуникод текстуалне датотеке могу бити кодиране у УТФ-8, УТФ-16 или УТФ-16 великој крајности, али су углавном кодиране у УТФ-16 формату.
Јуникод текстуалне датотеке могу имати ДОС, Јуникс или мек преломе реда, као обичне текстуалне датотеке.
Сва издања „dos2unix“-а и „unix2do“-а могу претворити УТФ-8 кодиране датотеке, јер је УТФ-8 дизајниран за повратну сагласност са АСКРИ-ијем.
„dos2unix“ и „unix2dos“ са Јуникод УТФ-16 подршком, може читати УТФ-16 кодиране текстуалне датотеке мале и велике крајности. Да видите да ли је „dos2unix“ изграђен са УТФ-16 подршком упишите „"dos2unix -V"“.
На Јуниксу/Линуксу УТФ-16 кодиране датотеке се претварају у локално кодирање знакова. Користите наредбу „locale(1)“ да сазнате које је кодирање знакова локализације. Када претварање није могуће, десиће се грешка претварања а датотека ће бити прескочена.
На Виндоузу УТФ-16 датотеке се подразумевано претварају у УТФ-8. УТФ-8 форматиране текстуалне датотеке су добро подржане и на Виндоузу и на Јуникс/Линуксу.
УТФ-16 и УТФ-8 кодирања су у потпуности сагласна, у претварању се неће изгубити никакав текст. Када се догоди грешка претварања УТФ-16 у УТФ-8, на пример када улазна УТФ-16 датотека садржи грешку, датотека ће бити прескочена.
Када се користи опција „"-u"“, излазна датотека ће бити записана у истом УТФ-16 кодирању као и улазна датотека. Опција „"-u"“ спречава претварање у УТФ-8.
„dos2unix“ и „unix2dos“ немају могућности да претворе УТФ-8 датотеке у УТФ-16.
ИСО и 7-битни режим претварања не ради на УТФ-16 датотекама.
На Виндоузу Јуникод текстуалне датотеке обично имају Ознаку редоследа бајтова (BOM), јер многи Виндоуз програми (укључујући Бележницу) подразумевано додају ОРБ. Видите такође <http://en.wikipedia.org/wiki/Byte_order_mark>.
На Јуниксу Јуникод датотеке обично немају ОРБ. Претпоставља се да су текстуалне датотеке кодиране у језичком кодирању знака.
„dos2unix“ може открити само да ли је датотека у УТФ-16 формату и да ли датотека има ОРБ. Када УТФ-16 датотека нема ОРБ, „dos2unix“ ће видети датотеку као бинарну.
Користите опцију „"-ul"“ или „"-ub"“ да претворите УТФ-16 датотеку без ОРБ-а.
„dos2unix“ подразумевано не записује ОРБ у излазну датотеку. Са опцијом „"-b"“ „dos2unix записује ОРБ када улазна датотека има ОРБ.
„unix2dos“ подразумевано записује ОРБ у излазну датотеку када улазна датотека има ОРБ. Користите опцију „"-r"“ да уклоните ОРБ.
„dos2unix“ и „unix2dos“ увек записује ОРБ када се користи „"-m"“ опција.
„dos2unix“ има изборну подршку за читање и писање Јуникод назива датотека у Виндоуз командној линији. То значи да „dos2unix“ може отворити датотеке које у називу имају знакове који нису део подразумеване системске АНСИ кодне странице. Да бисте видели да ли је „dos2unix“ за Виндоуз изграђен са подршком Јуникод назива датотеке упишите „"dos2unix -V"“.
Постоје проблеми са приказом Јуникод назива датотека у Виндоуз конзоли. Видите опцију „"-D"“, „"--display-enc"“. Називи датотека могу бити погрешно приказани у конзоли, али ће датотеке бити записане под тачним називом.
Претвара из Виндоуз УТФ-16 (са ОРБ-ом) у Јуникс УТФ-8:
dos2unix -n улаз.txt излаз.txt
Претвара из Виндоуз УТФ-16ЛЕ (без ОРБ-а) у Јуникс УТФ-8:
dos2unix -ul -n улаз.txt излаз.txt
Претворите из Јуникс УТФ-8 у Вондоуз УТФ-8 са ОРБ-ом:
unix2dos -m -n улаз.txt излаз.txt
Претворите из Јуникс УТФ-8 у Вондоуз УТФ-16:
unix2dos < улаз.txt | iconv -f UTF-8 -t UTF-16 > излаз.txt
„GB18030“ је стандард кинеске владе. Обавезни подскуп „GB18030“ стандард се званично захтева за све софтверске производе продате у Кини. Видите такође <http://en.wikipedia.org/wiki/GB_18030>.
„GB18030“ је у потпуности сагласан са Јуникод-ом, и може се сматрати Јуникод форматом преображаја. Као УТФ-8, „GB18030“ је сагласан са АСКРИ. „GB18030“ је такође сагласан са Виндоуз кодном страницом 936, познатом и као ГБК.
На Јуниксу/Линуксу УТФ-16 датотеке се претварају у „GB18030“ када је језичко кодирање постављено на „GB18030“. Знајте да ће ово радити само ако је језик подржан системом. Користите наредбу „"locale -a"“ да добавите списак подржаних језика.
На Виндоузу треба да користите опцију „"-gb"“ да преведете УТФ-16 датотеке у „GB18030“.
„GB18030“ кодиране датотеке могу имати Ознаку редоследа бајтова, као Јуникод датотеке.
Чита улаз са „стнд_улаза“ и пише излаз на „стнд_излаз“:
dos2unix < а.txt cat а.txt | dos2unix
Претвара и замењује „а.txt“. Претвара и замењује „б.txt“:
dos2unix а.txt б.txt dos2unix -o а.txt б.txt
Претвара и замењује „а.txt“ у аскри режиму претварања:
dos2unix а.txt
Претвара и замењује „а.txt“ у аскри режиму претварања, Претвара и замењује „б.txt“ у 7битном режиму претварања:
dos2unix а.txt -c 7bit б.txt dos2unix -c ascii а.txt -c 7bit б.txt dos2unix -ascii а.txt -7 б.txt
Претвара „а.txt“ из Мек у Јуникс формат:
dos2unix -c mac а.txt mac2unix а.txt
Претвара „а.txt“ из Јуникс у Мек формат:
unix2dos -c mac а.txt unix2mac а.txt
Претвара и замењује „а.txt“ док задржава изворни печат датума:
dos2unix -k а.txt dos2unix -k -o а.txt
Претвара „а.txt“ и пише на „е.txt“:
dos2unix -n а.txt е.txt
Претвара „а.txt“ и пише на „е.txt“, задржава печат датума „е.txt“-а истим као „а.txt“:
dos2unix -k -n а.txt е.txt
Претвара и замењује „а.txt“, претвара „б.txt“ и пише на „.txt“:
dos2unix а.txt -n б.txt е.txt dos2unix -o а.txt -n б.txt е.txt
Претвара „ц.txt“ и пише на „е.txt“, претвара и замењује„а.txt“, претвара и замењује „б.txt“, претвара „д.txt“ и пише у „ф.txt“:
dos2unix -n ц.txt е.txt -o а.txt б.txt -n д.txt ф.txt
У Јуникс шкољци наредбе „find(1)“ и „xargs(1)“ се могу користити за покретање „dos2unix“-а дубински преко свих текстуалних датотека у стаблу директоријума. На пример за претварање свих „.txt“ датотека у стаблу директоријума под текућим директоријумом упишите:
find . -name '*.txt' -print0 |xargs -0 dos2unix
„find(1)“-ова опција „"-print0"“ и одговарајућа „xargs(1)“-ова опција „"-0"“ су потребне када постоје датотеке са размацима и наводницима у називима. У супротном се ове опције могу изоставити. Друга могућност је да користите „find(1)“ са „"-exec"“ опцијом:
find . -name '*.txt' -exec dos2unix {} \;
У Виндоуз командном упиту следеће наредбе се могу користити:
for /R %G in (*.txt) do dos2unix "%G"
Корисници „PowerShell“-а могу користити следеће наредбе у Виндоуз „PowerShell“-у:
get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname}
export LANG=nl Холандски export LANG=nl_NL Холандски, Низоземска export LANG=nl_BE Холандски, Белгија export LANG=es_ES Шпански, Шпанија export LANG=es_MX Шпански, Мексико export LANG=en_US.iso88591 Енглески, САД, Latin-1 кодирање export LANG=en_GB.UTF-8 Енглески, УК, УТФ-8 кодирање
За потпун списак језика и шифара држава видите приручник геттекста: <http://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html>
На Јуникс системима можете користити наредбу „locale(1)“ да видите особене податке језика.
Ако изаберете језик који није доступан добићете стандардне поруке на енглеском.
Пример (ПОСИКС љуска):
export 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>
Бенџамин Лин – <blin@socs.uts.edu.au>, Бернд Јоханес Вебен (mac2unix) – <wuebben@kde.org>, Кристијан Вирл (додаје додатни нови ред) – <wurll@ira.uka.de>, Ервин Вотерландер – <waterlan@xs4all.nl> (одржавалац)
Страница пројекта: <http://waterlan.home.xs4all.nl/dos2unix.html>
Страница Ковнице извора: <http://sourceforge.net/projects/dos2unix/>
2022-06-05 | dos2unix |