dos2unix - DOS/Mac - Unixæä»¶æ ¼å¼è½¬æ¢å¨
dos2unix [é项] [æä»¶ â¦] [-n è¾å
¥æä»¶ è¾åºæä»¶ ...]
unix2dos [é项] [æä»¶ â¦] [-n è¾å
¥æä»¶ è¾åºæä»¶ ...]
Dos2unix软件å
å
æ¬å·¥å
·dos2unix å unix2dosï¼ç¨äºå°çº¯ææ¬æä»¶å¨DOSæMacæ ¼å¼ä¸Unixæ ¼å¼ä¹é´ç¸äºè½¬æ¢ã
DOS/Windowsçææ¬æä»¶ä¸ï¼æè¡ç¬¦æ¯ç±ä¸¤ä¸ªåç¬¦å ±å表示çï¼å车符ï¼CRï¼åæ¢è¡ç¬¦ï¼LFï¼ãUnixçææ¬æä»¶ä¸ï¼æ¢è¡ç¬¦åç±å个æ¢è¡ç¬¦ï¼LFï¼è¡¨ç¤ºãèMacçææ¬æä»¶åç±å个å车符ï¼CRï¼ç¨äºMac OS Xä¹åçç³»ç»ï¼æå个æ¢è¡ç¬¦ï¼LFï¼ç¨äºå½ä¸çæ°Mac OSï¼è¡¨ç¤ºã
é¤äºæè¡ç¬¦ï¼Dos2unixè¿å¯ä»¥è½¬æ¢æä»¶ç¼ç ãä¸äºDOSç¼ç 页å¯ä»¥è¢«è½¬æ¢ä¸ºUnix Latin-1ï¼Windows Unicodeï¼UTF-16ï¼æä»¶ä¹å¯ä»¥è¢«è½¬æ¢ä¸ºUnix Unicodeï¼UTF-8ï¼æä»¶ã
äºè¿å¶æä»¶åä¼è¢«èªå¨è·³è¿ï¼é¤éæå®äºå¼ºå¶è½¬æ¢é项ã
ç¹æ®æä»¶ï¼å¦ç®å½åéåï¼ä¼è¢«èªå¨è·³è¿ã
符å·é¾æ¥åå ¶ææåçç®æ é»è®¤ä¸ä¼è¢«è½¬æ¢ãå¯ä»¥ç¨éé¡¹æ¥æå®æ¿æ¢ç¬¦å·é¾æ¥ï¼æè å°è¾åºåå ¥å°é¾æ¥ç®æ ãWindowsä¸ä¸æ¯æåå ¥å°ç¬¦å·é¾æ¥çç®æ ã
Dos2unixç±SunOS/Solarisä¸ççæ¬æ¹åèæãè¿ä¸¤ä¸ªçæ¬é´æä¸ä¸ªé大差å¼ï¼æ¬çæ¬é»è®¤è¿è¡åä½è½¬æ¢ï¼æ§æä»¶æ¨¡å¼ï¼ï¼è忥SunOS/Solarisä¸ççæ¬åªæ¯æé
对转æ¢ï¼æ°æä»¶æ¨¡å¼ï¼ï¼åè§é项
-o å -nãè¿æä¸ä¸ªåºå«æ¯SunOS/Solarisä¸ççæ¬é»è®¤ä½¿ç¨ iso 模å¼ï¼èæ¬çæ¬é»è®¤ä½¿ç¨ ascii 模å¼ã
å°å颿æçé项å½ä½æä»¶åãå¦æä½ å¸æè½¬æ¢ä¸ä¸ªæä»¶åä»¥ç ´æå·å¼å¤´çæä»¶ï¼å¯ä»¥ä½¿ç¨è¿ä¸ªé项ãä¾å¦ï¼è¦è½¬æ¢ä¸ä¸ªå为â-fooâçæä»¶ï¼ä½ å¯ä»¥ç¨è¿ä¸ªå½ä»¤ï¼
dos2unix -- -foo
æè 卿°æä»¶æ¨¡å¼ä¸ï¼
dos2unix -n -- -foo out.txt
卿§æä»¶æ¨¡å¼ä¸ï¼å è®¸ä¿®æ¹æä»¶çææè ã
è¥ä½¿ç¨æ¤é项ï¼å°å
许å¨è½¬æ¢æä»¶æ¶åå§æä»¶çå±ä¸»æå±ç»åçåæ´ï¼ç±»ä¼¼äºä½¿ç¨æ°æä»¶æ¨¡å¼è¿è¡è½¬æ¢ãå¦è¯·åè§é项-o å -nãä»
å½
dos2unix æ¯æä¿æ¤æä»¶çå±ä¸»/å±ç»æ¶æè½ä½¿ç¨è¯¥é项ã
åªè½¬æ¢æè¡ç¬¦ãè¿æ¯é»è®¤çè½¬æ¢æ¨¡å¼ã
å¨DOSåISO-8859-1å符éä¹é´è½¬æ¢ãåè§ CONVERSION MODES ä¸èã
使ç¨Windows 1252 ç¼ç 页ï¼è¥¿æ¬§ï¼ã
使ç¨DOS 437 ç¼ç 页ï¼ç¾å½ï¼ãè¿æ¯ISOè½¬æ¢æ¶çé»è®¤ç¼ç 页ã
使ç¨DOS 850 ç¼ç 页ï¼è¥¿æ¬§ï¼ã
使ç¨DOS 860 ç¼ç 页ï¼è¡èçï¼ã
使ç¨DOS 863 ç¼ç 页ï¼å æ¿å¤§æ³è¯ï¼ã
使ç¨DOS 865 ç¼ç 页ï¼å欧ï¼ã
å°8ä½å符转æ¢å°7ä½ç©ºé´ã
ä¿çåèåºæ è®°ï¼BOMï¼ãå½è¾å
¥æä»¶å«æBOM头æ¶ï¼ä¹åè¾åºæä»¶åå
¥BOMãè¿æ¯è½¬æ¢å°DOSæè¡ç¬¦æ¶çé»è®¤è¡ä¸ºãåè§é项 -rã
æ¹åè½¬æ¢æ¨¡å¼ãè½¬æ¢æ¨¡å¼å¯ä»¥ä¸ºï¼asciiã7bitãisoæmacï¼é»è®¤ä¸ºasciiã
设置æ¾ç¤ºææ¬çç¼ç ãç¼ç å¯ä»¥ä¸ºï¼ansiãunicodeãunicodebomãutf8ãutf8bomï¼é»è®¤ä¸º ansiã
è¿ä¸é项åªå¯¹æ¯æUnicodeæä»¶åçWindowsçdos2unixææãå®å¯¹æä»¶åçè¯»åæ æï¼åªå½±åå®ä»¬çæ¾ç¤ºç»æã
å¨Windowsæ§å¶å°ä¸ï¼æå ç§å¯ä»¥æ ¹æ®ææ¬ç¼ç æ¥æ¾ç¤ºææ¬çæ¹æ³ãå®ä»¬åæå©å¼ã
dos2unixé»è®¤ä½¿ç¨ANSIç¼ç ææ¬ãä¼ç¹æ¯å®è½æä¾ååå
¼å®¹æ§ï¼å¹¶è½ç¨äºrasteråTrueTypeåä½ãå¨ä¸äºå°æ¹ï¼ä½ å¯è½éè¦ä½¿ç¨
chcp å½ä»¤å°æ´»å¨DOS OEMç¼ç 页设置为Windowsç³»ç»ANSIç¼ç 页ï¼å 为dos2unix使ç¨Windowsç³»ç»ç¼ç 页ã
ansiçç¼ºç¹æ¯å«æéç³»ç»é»è®¤ç¼ç 页ä¸å符çå½é åæä»¶åå°æ æ³è¢«æ£ç¡®æ¾ç¤ºãä½ ä¼çå°ä¸äºé®å·æå ¶ä»é误çå符ãå¦æä½ ä¸éè¦å¤ç夿æä»¶åï¼è¿ä¸æ¹æ³æ¯ä¸éçéæ©ã
Unicodeç¼ç ï¼Windowsä¸å¯¹UTF-16çç§°å¼ï¼çä¼ç¹æ¯ææ¬å¯ä»¥è¢«æ£ç¡®æ¾ç¤ºï¼ä¹æ 鿹忴»å¨ç¼ç 页ãä½ å¯è½éè¦è®¾ç½®ç»ç«¯åä½ä¸ºTrueType以便æ£ç¡®æ¾ç¤ºå½é åå符ã妿TrueTypeåä½ä¸ä¸å å«æä¸ªå符ï¼ä½ ä¼çå°ä¸ä¸ªå°æ¹åï¼ææ¶æ¹åä¸è¿ä¼æä¸ä¸ªé®å·ã
å½ä½ 使ç¨ConEmuç»ç«¯æ¶ï¼æä»¥çææ¬å°ä¼è¢«æ£ç¡®æ¾ç¤ºï¼å 为ConEmuä¼èªå¨éæ©åéçåä½ã
Unicodeç缺ç¹å¨äºå®ä¸ASCIIä¸å ¼å®¹ãå½ä½ å°è¾åºéå®åå°å ¶ä»ç¨åºææä»¶æ¶ï¼å®å¯è½ä¸é£ä¹å®¹ææ§å¶
å½ä½¿ç¨ unicodebom
æ¹æ³æ¶ï¼å°ä¼å¨Unicodeææ¬åæ·»å ä¸ä¸ªBOMï¼åèåºæ è®°ï¼ãå¨PowerShellä¸ï¼éè¦æ ¹æ®BOMæ¥è¿è¡æ£ç¡®çéå®åæç®¡éè¾åºã
utf8çä¼ç¹å¨äºå®ä¸ASCIIå
¼å®¹ãä½ éè¦è®¾ç½®ç»ç«¯çåä½ä¸ºTrueTypeåä½ã使ç¨TrueTypeåä½å¯ä»¥ä½¿å¾ææ¬å¾ä»¥æ£ç¡®æ¾ç¤ºï¼å°±å使ç¨
unicode ç¼ç æ¶é£æ ·ã
ç¼ºç¹æ¯å½ä½ 使ç¨é»è®¤çrasterå使¶ï¼ææçéASCIIåç¬¦å°æ æ³è¢«æ£ç¡®æ¾ç¤ºãä¸ä» æ¯unicodeæä»¶åï¼è¿ç¿»è¯çæ¶æ¯ä¹æ æ³è¢«è¯»åãå¨é 置为ä¸äºå°åºçWindowsä¸ï¼å½ç»ç«¯ä¸æ¾ç¤ºè¿äºæ¶æ¯æ¶ä½ å¯è½ä¼çå°éªçç°è±¡ã
å¨ConEmuç»ç«¯ä¸ï¼utfç¼ç æ¹å¼å¯ä»¥æ£å¸¸å·¥ä½ã
å½ä½¿ç¨ utf8bom
æ¹æ³æ¶ï¼å°ä¼å¨Unicodeææ¬åæ·»å ä¸ä¸ªBOMï¼åèåºæ è®°ï¼ãå¨PowerShellä¸ï¼éè¦æ ¹æ®BOMæ¥è¿è¡æ£ç¡®çéå®åæç®¡éè¾åºã
é»è®¤çç¼ç æ¹å¼å¯ä»¥éè¿è®¾ç½® DOS2UNIX_DISPLAY_ENC ç¯å¢åé为 unicode ãunicodebomãutf8 æ
utf8bom æ¥æ¹åã
强å¶è½¬æ¢äºè¿å¶æä»¶ã
å¨Windowsä¸ï¼UTF-16é»è®¤è¢«è½¬æ¢ä¸ºUTF-8æ ¼å¼ï¼æ 论åºå设置为ä½ã请使ç¨è¿ä¸é项å°UTF-16æä»¶è½¬æ¢ä¸ºGB18030æ ¼å¼ãæ¤é项åªå¨Windows䏿æãåå GB18030 ä¸èã
æ¾ç¤ºå¸®å©ï¼ç¶åéåºã
æ¾ç¤ºæä»¶ä¿¡æ¯ãä¸è¿è¡è½¬æ¢ã
å°ä¼æ¾ç¤ºä¸åä¿¡æ¯ï¼æé¡ºåºï¼ï¼DOSæè¡ç¬¦çæ°éãUnixæè¡ç¬¦çæ°éãMacæè¡ç¬¦çæ°éãæ¯å¦æBOMãææ¬/äºè¿å¶ãæä»¶åã
è¾åºç¤ºä¾ï¼
6 0 0 no_bom text dos.txt
0 6 0 no_bom text unix.txt
0 0 6 no_bom text mac.txt
6 6 6 no_bom text mixed.txt
50 0 0 UTF-16LE text utf16le.txt
0 50 0 no_bom text utf8unix.txt
50 0 0 UTF-8 text utf8dos.txt
2 418 219 no_bom binary dos2unix.exe
注æï¼äºè¿å¶æä»¶ææ¶ä¼è¢«è¯¯å¤ä¸ºææ¬æä»¶ãåè§é项 -sã
å¯ä»¥ä¸ºè¾åºè®¾ç½®é¢å¤çæ å¿ï¼ä¸ä¸ªæå¤ä¸ªï¼ã
使ç¨é¶å符ï¼"\0"ï¼è鿢è¡ç¬¦æ¥åå²æä»¶ä¿¡æ¯è¡ãç¨äºå¨æå®äº c é项çæ
åµä¸ï¼æ£ç¡®è§£æå«æç©ºæ ¼æå¼å·çæä»¶åã请ç»å xargs(1) çé项
-0 æ --null æ¥ä½¿ç¨ã
æ¾ç¤ºDOSæè¡ç¬¦çæ°éã
æ¾ç¤ºUnixæè¡ç¬¦çæ°éã
æ¾ç¤ºMacæè¡ç¬¦çæ°éã
æ¾ç¤ºBOMç¶åµã
æ¾ç¤ºæä»¶ä¸ºææ¬æäºè¿å¶ã
åªæ¾ç¤ºå°ä¼è¢«è½¬æ¢çæä»¶ã
è¥è®¾ç½®äº cæ å¿ï¼dos2unixå°åªæ¾ç¤ºå«æDOSæè¡ç¬¦çæä»¶ï¼unix2doså°åªæ¾ç¤ºå«æUnixæè¡ç¬¦çæä»¶ã
æ¾ç¤ºå¤´é¨ã
æ¾ç¤ºä¸å«è·¯å¾çæä»¶åã
示ä¾ï¼
æ¾ç¤ºææ *.txt æä»¶çä¿¡æ¯ï¼
dos2unix -i *.txt
åªæ¾ç¤ºDOSæè¡ç¬¦åUnixæè¡ç¬¦çæ°éï¼
dos2unix -idu *.txt
åªæ¾ç¤ºBOMç¶åµï¼
dos2unix --info=b *.txt
ååºå«æDOSæè¡ç¬¦çæä»¶ï¼
dos2unix -ic *.txt
ååºå«æUnixæè¡ç¬¦çæä»¶ï¼
unix2dos -ic *.txt
åªè½¬æ¢å«æDOSæè¡ç¬¦çæä»¶ï¼ä¿æå ¶ä»æä»¶ä¸åï¼
dos2unix -ic0 *.txt | xargs -0 dos2unix
æ¥æ¾å«æDOSæè¡ç¬¦çææ¬æä»¶ï¼
find -name '*.txt' -print0 | xargs -0 dos2unix -ic
å°è¾å ¥æä»¶çæ¶é´æ³åºç¨å°è¾åºæä»¶ã
æ¾ç¤ºç¨åºè®¸å¯è¯ã
æ·»å é¢å¤çæ°è¡ã
dos2unixï¼åªæDOSæè¡ç¬¦ä¼è¢«è½¬æ¢ä¸ºä¸¤ä¸ªUnixæè¡ç¬¦ãå¨Mac模å¼ä¸ï¼åªæMacæè¡ç¬¦ä¼è¢«è½¬æ¢ä¸ºUnixæè¡ç¬¦ã
unix2dosï¼åªæUnixæè¡ç¬¦ä¼è¢«è½¬æ¢ä¸ºä¸¤ä¸ªDOSæè¡ç¬¦ãå¨Mac模å¼ä¸ï¼Unixæè¡ç¬¦ä¼è¢«è½¬æ¢ä¸ºä¸¤ä¸ªMacæè¡ç¬¦ã
å°åèåºæ è®°ï¼BOMï¼åå ¥å°è¾åºæä»¶ãé»è®¤æ åµä¸å°åå ¥UTF-8 BOMã
å½è¾å
¥æä»¶ä¸ºUTF-16æ ¼å¼ï¼å¹¶ä¸ä½¿ç¨äº -ué项ï¼å°åå
¥UTF-16 BOMã
å½è¾åºæä»¶ä¸æ¯UTF-8ãUTF-16æGB18030æ ¼å¼æ¶ï¼è¯·ä¸è¦ä½¿ç¨æ¤é项ãåå UNICODE ä¸èã
æ°æä»¶æ¨¡å¼ã转æ¢è¾å ¥æä»¶å¹¶åå ¥å°è¾åºæä»¶ãæä»¶åå¿ é¡»æå¯¹ç»åºï¼å¹¶ä¸ ä¸è½ 使ç¨éé 符ï¼å¦åä½ å°ä¼ä¸¢å¤±æä»¶ã
ä½¿ç¨æ°æä»¶ï¼é
å¯¹ï¼æ¨¡å¼è½¬æ¢æ¶ï¼å½ä»¤æ§è¡è
å¿
须为æä»¶çææè
ãæ°æä»¶ç读/åæéå°ç±æºæä»¶çæéåå»å½ä»¤æ§è¡è
ç umask(1) å¾å°ã
卿§æä»¶æ¨¡å¼ä¸ï¼ä¸å è®¸ä¿®æ¹æä»¶çææè ï¼é»è®¤é项ï¼ã
å½åå§æä»¶çå±ä¸»/å±ç»æ æ³ä¿æä¸åæ¶ï¼åæ¢æ ¼å¼è½¬æ¢ãå¦è¯·åè§-o å -né项ãä»
å½ dos2unix
æ¯æä¿æ¤æä»¶çå±ä¸»/å±ç»æ¶æè½ä½¿ç¨è¯¥é项ã
æ§æä»¶æ¨¡å¼ã转æ¢å¹¶å°è¾åºè¦çå°æºæä»¶ãç¨åºé»è®¤ä½¿ç¨æ¤æ¨¡å¼ï¼å 许使ç¨éé 符ã
卿§æä»¶ï¼æ¿æ¢ï¼æ¨¡å¼ä¸ï¼è¢«è½¬æ¢çæä»¶çææè ãç»å读/åæéä¿æä¸åãå½æä»¶è¢«å ¶ä»å ·æåæéçç¨æ·ï¼å¦rootï¼è½¬æ¢æ¶ï¼æ åµä¹æ¯å¦æ¤ãå¦ææ æ³ä¿æè¿äºå¼ä¸åï¼è½¬æ¢å°ä¼ç»æ¢ãæ¹åæºæä»¶çææè å¯è½é æå ¶æ æ³è¯»å该æä»¶ï¼èæ¹åç»åå¯è½å¸¦æ¥å®å ¨éæ£ï¼ä½¿æä»¶è¢«ä¸æ³åå读åãåªæUnixææ¯æè½¬æ¢æ¶ä¿çææè ãç»å读/åæéã
è¥è¦æ¥ç dos2unix æ¯å¦æ¯æä¿æ¤æä»¶çææè
ï¼è¯·è¾å
¥dos2unix -Vã
dos2unix
å¨è½¬æ¢æ ¼å¼æ¶ä¼çæä¸ä¸ªä¸´æ¶æä»¶ã妿å¨è½¬æ¢æ¶åºéï¼å®ä¼å é¤ä¸´æ¶æä»¶ï¼ä»èä¿è¯åå§æä»¶ä¸è¢«æ´æ¹ï¼å¦æè½¬æ¢æåï¼å°ç¨ä¸´æ¶æä»¶æ¿æ¢åå§æä»¶ãå¨è¿ä¸è¿ç¨ä¸ï¼å¦æ
dos2unix
æ æ³å°ä¸´æ¶æä»¶çææè
设置为åå§æä»¶çææè
ï¼é£ä¹æ°çæçæä»¶ä¹æ æ³ä¿çåå§æä»¶çå±ä¸»/å±ç»å±æ§ï¼å³ä¾¿æ¨å¯¹åå§æä»¶æåå
¥æéï¼ãå¨è¿ç§æ
åµä¸ï¼å¯ä»¥ä½¿ç¨--allow-chowné项æ¥ç»§ç»è¿è¡è½¬æ¢ï¼
dos2unix --allow-chown foo.txt
æè 卿°æä»¶æ¨¡å¼ä¸ï¼
dos2unix -n foo.txt foo.txt
使ç¨--allow-chowné项ç好å¤å¨äºï¼æ¨å¯ä»¥ä½¿ç¨éé
ç¬¦æ¥æä½æä»¶ï¼åæ¶å°½å¯è½ä¿ææä»¶çææè
ä¸åã
å®é模å¼ã䏿¾ç¤ºä»»ä½è¦åæä¿¡æ¯ãè¿åå¼ä¸º0ï¼é¤éå½ä»¤è¡é项æè¯¯ã
ç§»é¤åèåºæ è®°ï¼BOMï¼ï¼ä¸åå
¥BOMå°è¾åºæä»¶ãè¿æ¯è½¬æ¢å°Unixæè¡ç¬¦æ¶çé»è®¤è¡ä¸ºãåè§é项 -bã
è·³è¿äºè¿å¶æä»¶ï¼é»è®¤ï¼ã
è·³è¿äºè¿å¶æä»¶æ¯ä¸ºäºé¿å å¯è½çé误ã请注æï¼å¯¹äºè¿å¶æä»¶çæ¢æµå¹¶ä¸è½åå°100%åç¡®ãç¨åºéè¿æ«æäºè¿å¶æä»¶æç¹æçæ è®°æ¥å°å ¶ä¸ææ¬æä»¶åºå弿¥ï¼ä½æçäºè¿å¶æä»¶å¯è½åªå 嫿®éçææ¬å符ï¼è¿æ ·çæä»¶å°±ä¼è¢«è¯¯å¤ä¸ºææ¬æä»¶ã
ä¿çè¾å
¥æä»¶çUTF-16ç¼ç ãè¾åºæä»¶ä¹ä½¿ç¨UTF-16ç¼ç åç¸åçå°¾åºãè¿å°é»æ¢è½¬æ¢å°UTF-8ãç¸åºä¹ä¼åå
¥UTF-16 BOMãå¯ä»¥ç¨
-asciié项æ¥ç¦æ¢ã
åå®è¾å ¥æä»¶æ ¼å¼ä¸ºUTF-16LEã
è¾å ¥æä»¶ä¸æBOMæ¶ï¼å°ä¼è¦çæ¤é项ã
å¦æä½ åäºé误çå设ï¼è¾å
¥æä»¶ä¸ä¸ºUTF-16LEæ ¼å¼ï¼ï¼å¹¶ä¸è½¬æ¢æåï¼ä½ å°ä¼å¾å°ä¸ä¸ªé误çUTF-8æ ¼å¼çæä»¶ãä½ å¯ä»¥ç¨ iconv(1)
æ¥æ¤é转æ¢ï¼å°å
¶ä»UTF-8转æ¢åUTF-16LEãè¿æ ·åå¯ä»¥æ¢å¤æºæä»¶ã
对UTF-16LEçåå®å°æ ¹æ® l<è½¬æ¢æ¨¡å¼> æ¥å·¥ä½ãè¥æ¹åäºé»è®¤ç l<ascii> 模å¼ï¼åè¿ä¸åå®å°ä¼è¢«å ³éã
åå®è¾å ¥æä»¶æ ¼å¼ä¸ºUTF-16BEã
è¿ä¸éé¡¹ä¸ -ul 类似ã
æ¾ç¤ºæ´å¤ä¿¡æ¯ãå°ä¼æ¾ç¤ºæå ³BOMå转æ¢ç»è®¡çé¢å¤ä¿¡æ¯ã
追踪符å·é¾æ¥å¹¶è½¬æ¢å ¶ç®æ ã
å°ç¬¦å·é¾æ¥çç®æ æ¿æ¢ä¸ºè½¬æ¢åçæä»¶ï¼åæ¥çç®æ æä»¶ä¿æä¸åï¼ã
ä¿æç¬¦å·é¾æ¥åå ¶ç®æ æä»¶ä¸åï¼é»è®¤ï¼ã
æ¾ç¤ºçæ¬ä¿¡æ¯ï¼ç¶åéåºã
æ®é模å¼ä¸ï¼æè¡ç¬¦å°è¢«è½¬æ¢ä¸ºDOSæ ¼å¼ï¼æç¸åãMacæ ¼å¼çæè¡ç¬¦å°ä¸ä¼è¢«è½¬æ¢ã
Mac模å¼ä¸ï¼Macæè¡ç¬¦å°è¢«è½¬æ¢ä¸ºUnixæ ¼å¼ï¼æç¸åãDOSæè¡ç¬¦å°ä¸ä¼è¢«è½¬æ¢ã
è¥è¦ä»¥Mac模å¼è¿è¡ï¼è¯·ä½¿ç¨å½ä»¤è¡é项 -c macï¼æä½¿ç¨å½ä»¤ mac2unix æ unix2macã
å¨ ascii 模å¼ä¸ï¼åªè½¬æ¢æè¡ç¬¦ã è¿æ¯é»è®¤çè½¬æ¢æ¨¡å¼ã
å°½ç®¡æ¤æ¨¡å¼åå«âASCIIâï¼7ä½ç¼ç æ åï¼ï¼å®é ä¸è½¬æ¢æç §8ä½ç¼ç è¿è¡ã转æ¢UTF-8ç¼ç æä»¶æ¶è¯·å¡å¿ ä½¿ç¨æ¤æ¨¡å¼ã
卿¤æ¨¡å¼ä¸ï¼æä»¥ç8ä½éASCIIå符ï¼åå¼èå´128-255ï¼å°è¢«è½¬æ¢å°7ä½ç¼ç 空é´ã
Unixä¸ï¼å°å¨DOSå符éï¼ç¼ç 页ï¼åISOå符é ISO-8859-1ï¼Latin-1ï¼ä¹é´è¿è¡è½¬æ¢ãä¸å ·æ ISO-8859-1 ä¸å¯¹çå符çDOSå符å°ä¼è¢«è½¬æ¢ä¸ºç¹å·ï¼â.âï¼ãå½ ISO-8859-1 å符é䏿²¡æDOSä¸ç对çå符æ¶ä¹æ¯å¦æ¤ã
å½åªæå®äº -iso é项æ¶ï¼dos2unixå°å°è¯ç¡®å®å½åæ´»å¨ä»£ç 页ãè¥æ æ³ç¡®å®ï¼å使ç¨é»è®¤ä»£ç 页
CP437ï¼æ®éç¨äºç¾å½ï¼ãè¥è¦å¼ºå¶æå®ä»£ç 页ï¼è¯·ä½¿ç¨é项
-437ï¼ç¾å½ï¼ã-850ï¼è¥¿æ¬§ï¼ã-860ï¼è¡èçï¼ã-863ï¼æ³å½ãå æ¿å¤§ï¼æ-865ï¼å欧ï¼ã
Windows CP1252代ç 页ï¼è¥¿æ¬§ï¼ä¹å¯ä»¥éè¿é项 -1252 è·å¾æ¯æãè¥è¦ä½¿ç¨å
¶ä»ä»£ç 页ï¼å¯ä»¥ç»å iconv(1)
使ç¨dos2unixãiconvå¯ä»¥å¨å¾å¤å符ç¼ç é´è¿è¡è½¬æ¢ã
ä¸å¯¹Unicodeç¼ç ææ¬ä½¿ç¨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ï¼Unicodeï¼ï¼
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
ä»Unix UTF-8ï¼Unicodeï¼è½¬æ¢å°Windows CP1252ï¼
unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt
åè§ http://czyborra.com/charsets/codepages.html et http://czyborra.com/charsets/iso8859.htmlã
æå ç§ä¸åçUnicodeç¼ç ã对äºUnixåLinuxä¸çUnicodeæä»¶ï¼é常为UTF-8ç¼ç ãWindowsä¸çææ¬æä»¶å¯ä»¥æ¯UTF-8ãUTF-16æUTF-16BEç¼ç ï¼ä½å¤§å¤éç¨UTF-16æ ¼å¼ã
Unicodeææ¬æä»¶å¯ä»¥å«æDOSãUnixæMacæè¡ç¬¦ï¼å°±åæ®éææ¬æä»¶ä¸æ ·ã
ææçæ¬çdos2unixåunix2dosé½å¯ä»¥è½¬æ¢UTF-8æä»¶ï¼å 为UTF-8ååå ¼å®¹ASCIIã
嫿Unicode UTF-16æ¯æçdos2unixåunix2doså¯ä»¥è¯»åå°å°¾åºæå¤§å°¾åºçUTF-16ç¼ç ææ¬ãè¾å
¥ dos2unix -V
æ¥ç¡®å®dos2unixå¨ç¼è¯æ¯æ¯å¦å¯ç¨äºUTF-16æ¯æã
å¨Unix/Linuxä¸ï¼UTF-16ç¼ç æä»¶å°è¢«è½¬æ¢ä¸ºåºåå符ç¼ç ææå®çç¼ç ãå¯ä»¥ä½¿ç¨ locale(1)
å½ä»¤æ¥æ¥çå½åçåºåå符ç¼ç ãè¥æ æ³è½¬æ¢ï¼ç¨åºå°æ¥å转æ¢éè¯¯å¹¶è·³è¿æ¤æä»¶ã
å¨Windowsä¸ï¼UTF-16æä»¶è¢«é»è®¤è½¬æ¢ä¸ºUTF-8æ ¼å¼ãWindowsåUnix/Linux忝æUTF-8æ ¼å¼çææ¬æä»¶ã
UTF-16åUTF-8ç¼ç ç¸äºå ¼å®¹ï¼æä»¥å½¼æ¤è½¬æ¢æ¶ä¸ä¼ä¸¢å¤±ææ¬ãåè¥è½¬æ¢ä¸åºéï¼æ¯å¦UTF-16æ ¼å¼çè¾å ¥æä»¶å«æé误ï¼é£ä¹è¯¥æä»¶å°è¢«è·³è¿ã
è¥ä½¿ç¨äº -u é项ï¼è¾åºæä»¶å°ä¼ä½¿ç¨åè¾å
¥æä»¶ç¸åçUTF-16ç¼ç ã-ué项å°é»æ¢ç¨åºè½¬æ¢å°UTF-8ã
dos2unixåunix2dos没æç¨äºè½¬æ¢UTF-8å°UTF-16çé项ã
ISOå7ä½ç¼ç 模å¼çè½¬æ¢æ æ³ç¨äºUTF-16æä»¶ã
å¨Windowsä¸ï¼ææ¬æä»¶ä¸è¬å«æåèåºæ è®°ï¼BOMï¼ï¼å 为å¾å¤Windowsç¨åºï¼å æ¬è®°äºæ¬ï¼é»è®¤æ·»å BOMãåè§ http://en.wikipedia.org/wiki/Byte_order_markã
å¨Unixä¸ï¼Unicodeæä»¶ä¸è¬ä¸å«BOMãåå®ææ¬æä»¶ä½¿ç¨åºåå符ç¼ç 设置ææå®çç¼ç ã
dos2unixåªè½æ£æµå«æBOMæä»¶çUTF-16æ ¼å¼ãè¥UTF-16æä»¶ä¸å«BOMï¼dos2unixä¼å°å ¶è§ä½äºè¿å¶æä»¶ã
请使ç¨é项 -ul æ -ub æ¥è½¬æ¢ä¸å«BOMçUTF-16æä»¶ã
dos2unixé»è®¤ä¸è¾åºBOMãä½¿ç¨ -b é项å¯ä»¥è®©dos2unixå°BOMæ·»å å°è¾åºæä»¶ï¼å¦æè¾å
¥æä»¶ä¹å«æBOMçè¯ã
unix2dosé»è®¤è¾åºBOMï¼å¦æè¾å
¥æä»¶ä¹å«æBOMçè¯ãä½¿ç¨ -r å¯ä»¥ç§»é¤BOMã
è¥ä½¿ç¨äº -m é项ï¼dos2unixåunix2doså°æ»æ¯è¾åºBOMã
dos2unix对äºWindowså½ä»¤æç¤ºç¬¦ä¸è¯»åååå
¥Unicodeæä»¶åæé¢å¤çæ¯æãè¿æå³çdos2unixå¯ä»¥æå¼é£äºå
å«éé»è®¤ç³»ç»ANSIç¼ç 页å符çæä»¶ãè¥è¦æ¥çWindowsçdos2unixå¨ç¼è¯æ¶æ¯å¦å å
¥äºUnicodeæä»¶åæ¯æï¼è¯·è¾å
¥
dos2unix -Vã
å¨Windowsç»ç«¯ä¸æ¾ç¤ºUnicodeæä»¶åæä¸äºéè¦æ³¨æçé®é¢ã请åè§ -D å --display-enc
é项ãæä»¶åå¨ç»ç«¯ä¸å¯è½æ æ³è¢«æ£ç¡®æ¾ç¤ºï¼ä½åå
¥æä»¶æ¶æä»¶åä»ç¶æ¯æ£ç¡®çã
转æ¢Windows UTF-16å°Unix UTF-8ï¼
dos2unix -n in.txt out.txt
转æ¢Windows UTF-16LEï¼ä¸å«BOMï¼å°Unix 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
GB18030æ¯ä¸å½å½å®¶æ åãGB18030æ åçä¸ç³»ååé被强å¶åºç¨äºä¸å½éå®ç软件产åãåè§ http://en.wikipedia.org/wiki/GB_18030ã
GB18030ä¸Unicodeå®å ¨å ¼å®¹ï¼å¹¶ä¸å¯ä»¥è¢«è®¤ä¸ºæ¯Unicodeæ ¼å¼çåä½ãåUTF-8䏿 ·ï¼GB18030ä¹å ¼å®¹ASCIIãGB18030ä¹å ¼å®¹Windows 936代ç 页ï¼GBKï¼ã
å¨Unix/Linuxä¸ï¼è¥åºåç¼ç 被设置为GB18030ï¼UTF-16æä»¶å°è¢«è½¬æ¢ä¸ºGB18030æ ¼å¼ã注æåªæå½ç³»ç»æ¯æåºå设置æ¶è¿ä¸æä¼è¿è¡è¿ä¸è½¬æ¢ãå¯ä»¥ä½¿ç¨
locale -a å½ä»¤æ¥è·å忝æçåºåã
å¨Windowsä¸ï¼ä½ éè¦ä½¿ç¨ -gb é项æ¥è½¬æ¢UTF-16æä»¶å°GB18030ç¼ç ã
GB18030ç¼ç çæä»¶åUnicodeæä»¶ä¸æ ·å¯ä»¥å«æBOMã
仿 åè¾å ¥è¯»åï¼å¹¶è¾åºå°æ åè¾åºï¼
dos2unix < a.txt
cat a.txt | dos2unix
转æ¢å¹¶è¦ç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ä»Macæ ¼å¼è½¬æ¢å°Unixæ ¼å¼ï¼
dos2unix -c mac a.txt
mac2unix a.txt
å°a.txtä»Unixæ ¼å¼è½¬æ¢å°Macæ ¼å¼ï¼
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
ç»å find(1) å xargs(1) ä½¿ç¨ dos2unix å¯ä»¥éå½å°è½¬æ¢ç®å½æ ä¸çææ¬æä»¶ãä¾å¦ï¼è½¬æ¢å½åç®å½çç®å½æ 䏿æç .txt
æä»¶ï¼
dos2unix < a.txt
cat a.txt | dos2unix
è¥æä»¶åä¸æç©ºæ ¼æå¼å·ï¼åéè¦ä½¿ç¨ find(1) é项 -print0 åç¸åºç xargs(1) é项
-0ï¼å
¶ä»æ
åµä¸åå¯ä»¥çç¥å®ä»¬ãä¹å¯ä»¥ç»å -exec é项æ¥ä½¿ç¨ find(1)ï¼
find . -name '*.txt' -exec dos2unix {} \;
å¨Windowså½ä»¤æç¤ºç¬¦ä¸ï¼å¯ä»¥ä½¿ç¨ä¸åå½ä»¤ï¼
for /R %G in (*.txt) do dos2unix "%G"
PowerShellç¨æ·å¯ä»¥å¨Windows PowerShellä¸ä½¿ç¨å¦ä¸å½ä»¤ï¼
get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname}
LANGç¯å¢åéæå®äºç¨åºæä½¿ç¨çé¦éè¯è¨ãå®å æ¬å 个é¨åï¼ç¬¬ä¸é¨åæ¯å°åçè¯è¨ç¼ç ï¼ç¬¬äºé¨åæ¯ï¼å¯éçï¼å¤§åçå½å®¶/å°åºä»£ç ï¼åé¢ç¨ä¸åçº¿è¿æ¥ï¼ç¬¬ä¸é¨å乿¯å¯éçï¼å³å符ç¼ç ï¼åé¢ç¨ç¹è¿æ¥ãä¸äºPOSIXè§èç示ä¾å¦ä¸ï¼
export LANG=zh 䏿
export LANG=zh_CN 䏿ï¼ä¸å½
export LANG=zh_TW 䏿ï¼å°æ¹¾
export LANG=es_ES 西ççè¯ï¼è¥¿çç
export LANG=es_MX 西ççè¯ï¼å¢¨è¥¿å¥
export LANG=en_US.iso88591 è±è¯ï¼ç¾å½ï¼Latin-1ç¼ç
export LANG=en_GB.UTF-8 è±è¯ï¼è±å½ï¼UTF-8ç¼ç
宿´çè¯è¨åå½å®¶/å°åºç¼ç å¯ä»¥å¨gettextæå䏿¾å°ï¼http://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html
å¨Unixç³»ç»ä¸ï¼ä½ å¯ä»¥ä½¿ç¨ locale(1) å½ä»¤è·åç¹å®åºåçä¿¡æ¯ã
å¯ä»¥ä½¿ç¨LANGUAGEåéæå®ä¸ç³»åè¯è¨çä¼å
级ï¼å项ä¹é´ç±åå·åå²ãdos2unixé¦å
使ç¨LANGUAGEåéï¼å
¶æ¬¡ææ¯LANGãä¾å¦ï¼é¦é䏿ãå
¶æ¬¡è±æï¼LANGUAGE=<zh:enãå¨ä½¿ç¨è¯è¨ä¼å
级ä¹åï¼å¿
é¡»å
å¯ç¨åºåååè½ï¼å³å°LANGï¼æLC_ALLï¼åé设置为é¤äºâCâ以å¤çå
¶ä»å¼ãåè§gettextæåï¼http://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html
å¦æä½ éæ©äºä¸ä¸ªä¸å¯ç¨çè¯è¨ï¼ç¨åºå°ä¼è¾åºæ åçè±è¯ä¿¡æ¯ã
DOS2UNIX_LOCALEDIRç¯å¢åéå°è¦çç¼è¯æ¶è®¾ç½®çLOCALEDIRåéãLOCALEDIR被ç¨äºæ¥æ¾è¯è¨æä»¶ãGNUç¨åºçé»è®¤å¼ä¸º
/usr/local/share/localeãå¯ä»¥ä½¿ç¨ --version æ¥çå½åçLOCALEDIRã
示ä¾ï¼POSIX shellï¼ï¼
export DOS2UNIX_LOCALEDIR=$HOME/share/locale
è¥æåï¼è¿å0ãè¥åºç°ç³»ç»é误ï¼åè¿åæè¿ä¸æ¬¡ç³»ç»é误å·ãè¥åçå ¶ä»é误ï¼è¿å1ã
å¨å®é模å¼ä¸ï¼è¿å弿»æ¯ä¸º0ï¼é¤éå½ä»¤è¡é项æè¯¯ã
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
Benjamin Lin - <blin@socs.uts.edu.au> Bernd Johannes Wuebbenï¼mac2unix模å¼ï¼ - <wuebben@kde.org>ï¼Christian Wurllï¼æ·»å é¢å¤æ°è¡ï¼ - <wurll@ira.uka.de>ï¼Erwin Waterlander - <waterlan@xs4all.nl>ï¼ç»´æ¤è ï¼
项ç®ä¸»é¡µï¼http://waterlan.home.xs4all.nl/dos2unix.html
SourceForge主页ï¼http://sourceforge.net/projects/dos2unix/
file(1) find(1) iconv(1) locale(1) xargs(1)