日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

php文件内含有隐藏的^m字符,【整理】如何取消Linux下,vi中显示的^M符号

發布時間:2023/11/27 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php文件内含有隐藏的^m字符,【整理】如何取消Linux下,vi中显示的^M符号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【整理】如何取消Linux下,vi中顯示的^M符號

【背景知識】

^M 是ascii中的'\r', 回車符,是16進制的0x0D,8進制的015,十進制的13。

對于換行這個動作,unix下一般只有一個0x0A表示換行,windows下一般都是0x0D和0x0A兩個字符。

另外:^L 是ascii 0x0C '\f', 換頁控制符。

而對于Linux 的vi,有些版本,比如我當前開發板里面的vi,是用busybox編譯出來的,不能識別windows下面編輯的,帶0x0D的那些文本文件,所以,你在windows下面編輯一個普通的文本文件,如果里面有換行,那么在Linux的vi里面,對應的那個0x0D就會顯示出一個^M,比如:

1. led on & off^M

eg.^M

echo none > /sys/class/leds/led_green/trigger^M

echo 1 > /sys/class/leds/led_green/brightness^M

echo > /sys/class/leds/led_green/brightness^M

Note: the default switch of trigger is [none]^M

2. heartbeat flash^M

eg.^M

echo heartbeat > /sys/class/leds/led_green/trigger^M

3. timer flash^M

eg.^M

echo timer > /sys/class/leds/led_green/trigger^M

echo 5 > /sys/class/leds/led_green/delay_on^M

echo 5 > /sys/class/leds/led_green/delay_off^M

每行最后都有一個^M,很是難看,所以想要去掉。

注:普通PC版本的Linux,好像可以很好地識別了,比如我的Linux服務器,OpenSUSE下面的某個版本vi的,可以很好地顯示那些windows下面編輯的,帶0x0D的回車換行符,不能出現^M。

此外,關于ASCII字符,Linux下面有個簡要的介紹:

[crifan@linux-41lh wi-fi]$man ascii

ASCII(7)??????????????????????????????????????????? Linux Programmer's Manual?????????????????????????????????????????? ASCII(7)

NAME

ascii - the ASCII character set encoded in octal, decimal, and hexadecimal

DESCRIPTION

ASCII is the American Standard Code for Information Interchange. It is a 7-bit code. Many 8-bit codes (such as ISO8859-1, the Linux default character set) contain ASCII as their lower half. The international counterpart of ASCII isknown as ISO 646.

The following table contains the 128 ASCII characters.

C program '\X' escapes are noted.

Oct?? Dec?? Hex?? Char??????????????????????? Oct?? Dec?? Hex?? Char

------------------------------------------------------------------------

000?? 0???? 00??? NUL '\0'??????????????????? 100?? 64??? 40??? @

001?? 1???? 01 ??SOH (start of heading)????? 101?? 65??? 41??? A

002?? 2???? 02??? STX (start of text)???????? 102?? 66??? 42??? B

003?? 3???? 03??? ETX (end of text)?????????? 103?? 67??? 43??? C

004?? 4???? 04??? EOT (end of transmission)?? 104?? 68??? 44??? D

005?? 5???? 05??? ENQ (enquiry)?????????????? 105?? 69??? 45??? E

006?? 6???? 06??? ACK (acknowledge)?????????? 106?? 70??? 46??? F

007?? 7???? 07??? BEL '\a' (bell)???????????? 107?? 71??? 47??? G

010?? 8???? 08?? BS '\b' (backspace)??????? 110?? 72??? 48??? H

011?? 9???? 09??? HT '\t' (horizontal tab)?? 111?? 73??? 49??? I

012?? 10??? 0A??? LF '\n' (new line)???????? 112?? 74??? 4A??? J

013?? 11??? 0B??? VT '\v' (vertical tab)???? 113?? 75??? 4B??? K

014?? 12??? 0C??? FF '\f' (form feed)??????? 114?? 76??? 4C??? L

015?? 13??? 0D??? CR '\r' (carriage ret)???? 115?? 77??? 4D??? M

016?? 14??? 0E??? SO (shift out)???????????? 116?? 78??? 4E??? N

017?? 15??? 0F??? SI (shift in)????????????? 117?? 79??? 4F??? O

。。。。。。。。。。。

【如何消除vi中的^M】

我剛開始去用sed命令:

sed 's/^M//g' file_old > file_new

不成功,輸出的文件,用vi打開,還是帶^M。

后來到網上搜到了可以用的辦法,用tr命令:

tr -d "\015" < myfile.txt > myfile_new.txt

可以把符號^M(即"\015")去掉,并另存為新文件myfile_new.txt

【后記】

根據別人的建議,知道了還有個專門的工具dos2unix和unix2dos,用于處理這方面的事情,詳情參考:

【轉】dos2unix和unix2dos命令使用

其用法很簡單,直接使用即可:

dos2unix file_name

這樣就可以把該文件里面的0x0D去掉了,只保留0x0A。

【引用】

1。如何取消vi中顯示的^M符號

2。Linux 下用程序新建的文件中出現^M字符,如何消除??

http://www.linuxforum.net/forum/printthread.php?Cat=&Board=program&main=32848&type=thread

3。[請教]用vi編輯文本時出現的^M和^L代表什么?

http://www.linuxsir.org/bbs/thread305370.html

總結

以上是生活随笔為你收集整理的php文件内含有隐藏的^m字符,【整理】如何取消Linux下,vi中显示的^M符号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。