寫了一個腳本,自動處理一個文件.
rm -f session.log
rm -f link
wget ftp://hostname/f:/ddn/session.log
egrep '^N[[:digit:]]|^D[1-4]' session.log >>link
egrep -c '^N[[:digit:]]|^D[1-4]' session.log >>link
egrep -v 'ACT/UP' link>>link
ls -l session.log >>link
gedit link
結果下載下來的session.log的文件名變成了加了一個奇怪字元,link變成了link?如下圖.
後續對link session.log文件的處理就會提示無法找到相應的文件.
搜了半天沒有找到相應的中文資料.
這裡這種情況的出現是因為,腳本是在windows下編寫的,然後傳到linux上運行,而windows下的斷行符是^M$ linux下的斷行符是$linux運行的時候無法識別$之前的^M,顯示了奇怪的字元.
如下圖所示
關於如何刪解決參考這裡
:http://hi.baidu.com/xyhouse/blog/item/0a54051f9f078fc0a786698b.html
要將a.txt里的^M去掉並寫入b.txt,則使用如下指令cat a.txt | tr -d "^M" > b.txt
注意:語句中的^M是通過ctrl V, ctrl M輸入的.特指/r字元
1.windows中的換行符是\r\n,
2. linux/unix下的換行符是\n.
其中:
回車符:\r=0x0d (13) return; #回車(carriage return)
換行符:\n=0x0a (10) newline.#換行(newline)
本文出自 「litsand的筆記」 博客,請務必保留此出處http://litsand.blog.51cto.com/640129/843138
[火星人 ] shell自動生成的文件有一個問號的後綴已經有667次圍觀