ปัญหานี้เกิดขึ้นประจำ ถ้ามีการส่งไฟล์หรือแก้ไขไฟล์ระหว่า window กับ linux แล้วพอ vi จะพบตัวอักษรแปลกๆ โผล่มาให้เห็นแล้วโปรแกรมก็ใช้งานไม่ได้ วิธีแก้ไขมีดังนี้
1. ใช้คำสั่งนี้
perl -i -pe'tr/\cM//d'
2. ใช้ vi แล้วพิมพ์ตามนี้
:%s/^M//g
โดยการพิมพ์ ^M ให้กด control key + V แล้วตามด้วย M (ทั้งสองตัวต้องกดระหว่างกด control key) แล้ว ^M จะโผล่มาให้เราเห็น แล้วตัวตัวอักษรที่เป้น ^M จะถูกลบ
ข้อมูลเพิ่มเติม
Oct Dec Hex Name
000 0 0×00 NUL
001 1 0×01 SOH, Control-A
002 2 0×02 STX, Control-B
003 3 0×03 ETX, Control-C
004 4 0×04 EOT, Control-D
005 5 0×05 ENQ, Control-E
006 6 0×06 ACK, Control-F
007 7 0×07 BEL, Control-G
010 8 0×08 BS, backspace, Control-H
011 9 0×09 HT, tab, Control-I
012 10 0x0a LF, line feed, newline, Control-J
013 11 0x0b VT, Control-K
014 12 0x0c FF, form feed, NP, Control-L
015 13 0x0d CR, carriage return, Control-M
016 14 0x0e SO, Control-N
017 15 0x0f SI, Control-O
020 16 0×10 DLE, Control-P
021 17 0×11 DC1, XON, Control-Q
022 18 0×12 DC2, Control-R
023 19 0×13 DC3, XOFF, Control-S
024 20 0×14 DC4, Control-T
025 21 0×15 NAK, Control-U
026 22 0×16 SYN, Control-V
027 23 0×17 ETB, Control-W
030 24 0×18 CAN, Control-X
031 25 0×19 EM, Control-Y
032 26 0x1a SUB, Control-Z
อ้างอิงจาก
http://deepupc.wordpress.com/2009/10/28/removing-special-charactersmca-in-vi/
กับ
http://computer-programming-forum.com/53-perl/30d38090ded1c5ae.htm